bu5hm4n pushed a commit to branch master.

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

commit 0c3903001127c90b79c342711867448a48d40e1b
Author: Proht <proht>
Date:   Sat Jan 25 19:06:33 2020 +0000

    edje_legacy: avoid calling any functions if part is NULL
    
    This avoids calling any functions like _edje_fetch if part is NULL, because 
it's unnecessary. This does not fix any null pointers, the EINA_SAFE* macros 
are just used for convenience.
    
    Differential Revision: https://phab.enlightenment.org/D11189
---
 src/lib/edje/edje_legacy.c | 47 ++++++++++++++++++++++++++++++----------------
 1 file changed, 31 insertions(+), 16 deletions(-)

diff --git a/src/lib/edje/edje_legacy.c b/src/lib/edje/edje_legacy.c
index f3a692b5a0..0c01114132 100644
--- a/src/lib/edje/edje_legacy.c
+++ b/src/lib/edje/edje_legacy.c
@@ -5,8 +5,9 @@
 
 #define GET_REAL_PART_ON_FAIL_RETURN(x) Edje_Real_Part *rp;\
                                         Edje *ed;\
+                                        if (!part) return x;\
                                         ed = _edje_fetch(obj);\
-                                        if ((!ed) || (!part)) return x;\
+                                        if (!ed) return x;\
                                         rp = 
_edje_real_part_recursive_get(&ed, part);\
                                         if (!rp) return x;\
 
@@ -25,12 +26,13 @@ edje_object_part_geometry_get(const Edje_Object *obj, const 
char *part, int *x,
 {
    Edje_Real_Part *rp;
    Edje *ed;
+   EINA_SAFETY_ON_NULL_RETURN_VAL(part, EINA_FALSE);
 
    // Similar to geometry_get(efl_part(obj, part), x, y, w, h) but the bool
    // return value matters here.
 
    ed = _edje_fetch(obj);
-   if ((!ed) || (!part))
+   if (!ed)
      {
         if (x) *x = 0;
         if (y) *y = 0;
@@ -486,10 +488,11 @@ edje_object_part_text_style_user_peek(const Eo *obj 
EINA_UNUSED, const char *par
    Edje_Real_Part *rp;
    const Evas_Textblock_Style *ts;
    Edje *ed;
+   EINA_SAFETY_ON_NULL_RETURN_VAL(part, NULL);
 
    ed = _edje_fetch(obj);
 
-   if ((!ed) || (!part)) return NULL;
+   if (!ed) return NULL;
    rp = _edje_real_part_recursive_get(&ed, part);
    if (!rp) return NULL;
    if (rp->part->type != EDJE_PART_TYPE_TEXTBLOCK) return NULL;
@@ -528,10 +531,11 @@ edje_object_text_insert_filter_callback_add(Eo *obj 
EINA_UNUSED, const char *par
 {
    Edje_Text_Insert_Filter_Callback *cb;
    Edje *ed;
+   EINA_SAFETY_ON_NULL_RETURN(part);
 
    ed = _edje_fetch(obj);
 
-   if ((!ed) || (!part)) return;
+   if (!ed) return;
    cb = calloc(1, sizeof(Edje_Text_Insert_Filter_Callback));
    cb->part = eina_stringshare_add(part);
    cb->func = func;
@@ -546,10 +550,11 @@ edje_object_text_insert_filter_callback_del(Eo *obj 
EINA_UNUSED, const char *par
    Edje_Text_Insert_Filter_Callback *cb;
    Eina_List *l;
    Edje *ed;
+   EINA_SAFETY_ON_NULL_RETURN_VAL(part, NULL);
 
    ed = _edje_fetch(obj);
 
-   if ((!ed) || (!part)) return NULL;
+   if (!ed) return NULL;
    EINA_LIST_FOREACH(ed->text_insert_filter_callbacks, l, cb)
      {
         if ((!strcmp(cb->part, part)) && (cb->func == func))
@@ -572,10 +577,11 @@ edje_object_text_insert_filter_callback_del_full(Eo *obj 
EINA_UNUSED, const char
    Edje_Text_Insert_Filter_Callback *cb;
    Eina_List *l;
    Edje *ed;
+   EINA_SAFETY_ON_NULL_RETURN_VAL(part, NULL);
 
    ed = _edje_fetch(obj);
 
-   if ((!ed) || (!part)) return NULL;
+   if (!ed) return NULL;
    EINA_LIST_FOREACH(ed->text_insert_filter_callbacks, l, cb)
      {
         if ((!strcmp(cb->part, part)) && (cb->func == func) &&
@@ -598,10 +604,11 @@ edje_object_text_markup_filter_callback_add(Eo *obj 
EINA_UNUSED, const char *par
 {
    Edje_Markup_Filter_Callback *cb;
    Edje *ed;
+   EINA_SAFETY_ON_NULL_RETURN(part);
 
    ed = _edje_fetch(obj);
 
-   if ((!ed) || (!part)) return;
+   if (!ed) return;
    cb = calloc(1, sizeof(Edje_Markup_Filter_Callback));
    cb->part = eina_stringshare_add(part);
    cb->func = func;
@@ -616,10 +623,11 @@ edje_object_text_markup_filter_callback_del(Eo *obj 
EINA_UNUSED, const char *par
    Edje_Markup_Filter_Callback *cb;
    Eina_List *l;
    Edje *ed;
+   EINA_SAFETY_ON_NULL_RETURN_VAL(part, NULL);
 
    ed = _edje_fetch(obj);
 
-   if ((!ed) || (!part)) return NULL;
+   if (!ed) return NULL;
    EINA_LIST_FOREACH(ed->markup_filter_callbacks, l, cb)
      {
         if ((!strcmp(cb->part, part)) && (cb->func == func))
@@ -642,10 +650,11 @@ edje_object_text_markup_filter_callback_del_full(Eo *obj 
EINA_UNUSED, const char
    Edje_Markup_Filter_Callback *cb;
    Eina_List *l;
    Edje *ed;
+   EINA_SAFETY_ON_NULL_RETURN_VAL(part, NULL);
 
    ed = _edje_fetch(obj);
 
-   if ((!ed) || (!part)) return NULL;
+   if (!ed) return NULL;
    EINA_LIST_FOREACH(ed->markup_filter_callbacks, l, cb)
      {
         if ((!strcmp(cb->part, part)) && (cb->func == func) &&
@@ -668,10 +677,11 @@ edje_object_part_text_user_insert(const Eo *obj, const 
char *part, const char *t
 {
    Edje_Real_Part *rp;
    Edje *ed;
+   EINA_SAFETY_ON_NULL_RETURN(part);
 
    ed = _edje_fetch(obj);
 
-   if ((!ed) || (!part)) return;
+   if (!ed) return;
    rp = _edje_real_part_recursive_get(&ed, part);
    if (!rp) return;
    if (rp->part->entry_mode > EDJE_ENTRY_EDIT_MODE_NONE)
@@ -719,11 +729,12 @@ EAPI void
 edje_object_part_text_append(Eo *obj, const char *part, const char *text)
 {
    Edje_Real_Part *rp;
-
    Edje *ed;
+   EINA_SAFETY_ON_NULL_RETURN(part);
 
    ed = _edje_fetch(obj);
-   if ((!ed) || (!part)) return;
+
+   if (!ed) return;
    rp = _edje_real_part_recursive_get(&ed, part);
    if (!rp) return;
    if ((rp->part->type != EDJE_PART_TYPE_TEXTBLOCK)) return;
@@ -745,10 +756,11 @@ edje_object_part_text_escaped_set(Eo *obj, const char 
*part, const char *text)
    Edje_Real_Part *rp;
    Eina_Bool int_ret;
    Edje *ed;
+   EINA_SAFETY_ON_NULL_RETURN_VAL(part, EINA_FALSE);
 
    ed = _edje_fetch(obj);
 
-   if ((!ed) || (!part)) return EINA_FALSE;
+   if (!ed) return EINA_FALSE;
    rp = _edje_real_part_recursive_get(&ed, part);
    if (!rp) return EINA_FALSE;
    if ((rp->type != EDJE_RP_TYPE_TEXT) ||
@@ -931,10 +943,11 @@ edje_object_part_text_unescaped_set(Eo *obj, const char 
*part, const char *text_
    Edje_Real_Part *rp;
    Eina_Bool int_ret = EINA_FALSE;
    Edje *ed;
+   EINA_SAFETY_ON_NULL_RETURN_VAL(part, EINA_FALSE);
 
    ed = _edje_fetch(obj);
 
-   if ((!ed) || (!part)) return EINA_FALSE;
+   if (!ed) return EINA_FALSE;
    rp = _edje_real_part_recursive_get(&ed, part);
    if (!rp) return EINA_FALSE;
    if ((rp->type != EDJE_RP_TYPE_TEXT) ||
@@ -958,10 +971,11 @@ edje_object_part_text_unescaped_get(const Eo *obj 
EINA_UNUSED, const char *part)
 {
    Edje_Real_Part *rp;
    Edje *ed;
+   EINA_SAFETY_ON_NULL_RETURN_VAL(part, NULL);
 
    ed = _edje_fetch(obj);
 
-   if ((!ed) || (!part)) return NULL;
+   if (!ed) return NULL;
 
    /* Need to recalc before providing the object. */
    _edje_recalc_do(ed);
@@ -1012,10 +1026,11 @@ edje_object_part_text_insert(Eo *obj, const char *part, 
const char *text)
 {
    Edje_Real_Part *rp;
    Edje *ed;
+   EINA_SAFETY_ON_NULL_RETURN(part);
 
    ed = _edje_fetch(obj);
 
-   if ((!ed) || (!part)) return;
+   if (!ed) return;
    rp = _edje_real_part_recursive_get(&ed, part);
    _edje_object_part_text_insert(ed, rp, text);
    if (ed->text_change.func)

-- 


Reply via email to