From 8ee02b4ad51dce7235e3d42161f170d23d3e3125 Mon Sep 17 00:00:00 2001 From: Youngbok Shin Date: Tue, 24 Mar 2015 12:53:34 +0900 Subject: [PATCH] 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 Change-Id: I6cff95ff7ba807441c96a24c838d5891ea980e0f Origin: upstream --- 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 08beca4..59b6f00 100644 --- a/src/lib/evas/canvas/evas_object_text.c +++ b/src/lib/evas/canvas/evas_object_text.c @@ -2042,11 +2042,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 995ae8e..84b1b82 100644 --- a/src/lib/evas/canvas/evas_object_textblock.c +++ b/src/lib/evas/canvas/evas_object_textblock.c @@ -11548,11 +11548,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; -- 2.7.4