From b8b6c1e1a8dd461026c47f316475f2812d32eeb0 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 --- 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 87c4d5a49b..e17bd63384 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 7b836b3548..7a70ac0788 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;