hermet pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=b8b6c1e1a8dd461026c47f316475f2812d32eeb0

commit b8b6c1e1a8dd461026c47f316475f2812d32eeb0
Author: Youngbok Shin <youngb.s...@samsung.com>
Date:   Tue Mar 24 12:53:34 2015 +0900

    evas: Add safety check for NULL pointer of clipper.
    
    Summary: It caused crash when clipper is NULL and it makes evas test-suite 
fail.
    
    Test Plan: Run evas test-suite. (make check)
    
    Reviewers: woohyun, tasn, herdsman, Hermet
    
    Reviewed By: Hermet
    
    Subscribers: cedric
    
    Differential Revision: https://phab.enlightenment.org/D2215
---
 src/lib/evas/canvas/evas_object_text.c      | 13 ++++++++-----
 src/lib/evas/canvas/evas_object_textblock.c | 13 ++++++++-----
 2 files changed, 16 insertions(+), 10 deletions(-)

diff --git a/src/lib/evas/canvas/evas_object_text.c 
b/src/lib/evas/canvas/evas_object_text.c
index 87c4d5a..e17bd63 100644
--- a/src/lib/evas/canvas/evas_object_text.c
+++ b/src/lib/evas/canvas/evas_object_text.c
@@ -2055,11 +2055,14 @@ normal_render:
 
         /* normal text */
         ENFN->context_multiplier_unset(output, context);
-        ENFN->context_multiplier_set(output, context,
-                                     obj->cur->clipper->cur->cache.clip.r,
-                                     obj->cur->clipper->cur->cache.clip.g,
-                                     obj->cur->clipper->cur->cache.clip.b,
-                                     obj->cur->clipper->cur->cache.clip.a);
+
+        if (obj->cur->clipper)
+          ENFN->context_multiplier_set(output, context,
+                                       obj->cur->clipper->cur->cache.clip.r,
+                                       obj->cur->clipper->cur->cache.clip.g,
+                                       obj->cur->clipper->cur->cache.clip.b,
+                                       obj->cur->clipper->cur->cache.clip.a);
+
         COLOR_ONLY_SET(obj, cur->cache, clip);
         DRAW_TEXT(0, 0);
         ENFN->context_multiplier_unset(output, context);
diff --git a/src/lib/evas/canvas/evas_object_textblock.c 
b/src/lib/evas/canvas/evas_object_textblock.c
index 7b836b3..7a70ac0 100644
--- a/src/lib/evas/canvas/evas_object_textblock.c
+++ b/src/lib/evas/canvas/evas_object_textblock.c
@@ -11669,11 +11669,14 @@ evas_object_textblock_render(Evas_Object *eo_obj 
EINA_UNUSED,
    int line_position =
            evas_common_font_instance_underline_position_get(NULL);
    ENFN->context_multiplier_unset(output, context);
-   ENFN->context_multiplier_set(output, context,
-                                obj->cur->clipper->cur->cache.clip.r,
-                                obj->cur->clipper->cur->cache.clip.g,
-                                obj->cur->clipper->cur->cache.clip.b,
-                                obj->cur->clipper->cur->cache.clip.a);
+
+   if (obj->cur->clipper)
+     ENFN->context_multiplier_set(output, context,
+                                  obj->cur->clipper->cur->cache.clip.r,
+                                  obj->cur->clipper->cur->cache.clip.g,
+                                  obj->cur->clipper->cur->cache.clip.b,
+                                  obj->cur->clipper->cur->cache.clip.a);
+
    ITEM_WALK()
      {
         Evas_Object_Textblock_Text_Item *ti;

-- 


Reply via email to