From 725d212f483fb5c13c55d491c6d099d3dbfc798d Mon Sep 17 00:00:00 2001 From: Carsten Haitzler Date: Wed, 23 Nov 2005 12:56:06 +0000 Subject: [PATCH] handle NULL strings better - need to handle mroe NULLS though SVN revision: 18617 --- legacy/edje/src/lib/edje_message_queue.c | 10 +++++----- legacy/edje/src/lib/edje_program.c | 6 ++---- legacy/edje/src/lib/edje_text.c | 3 +++ legacy/edje/src/lib/edje_util.c | 9 +++++---- 4 files changed, 15 insertions(+), 13 deletions(-) diff --git a/legacy/edje/src/lib/edje_message_queue.c b/legacy/edje/src/lib/edje_message_queue.c index 65f7f7b5d7..fab904f3d5 100644 --- a/legacy/edje/src/lib/edje_message_queue.c +++ b/legacy/edje/src/lib/edje_message_queue.c @@ -242,8 +242,8 @@ _edje_message_free(Edje_Message *em) Edje_Message_Signal *emsg; emsg = (Edje_Message_Signal *)em->msg; - free(emsg->sig); - free(emsg->src); + if (emsg->sig) free(emsg->sig); + if (emsg->src) free(emsg->src); free(emsg); } break; @@ -292,9 +292,9 @@ _edje_message_send(Edje *ed, Edje_Queue queue, Edje_Message_Type type, int id, v Edje_Message_Signal *emsg2, *emsg3; emsg2 = (Edje_Message_Signal *)emsg; - emsg3 = malloc(sizeof(Edje_Message_Signal)); - emsg3->sig = strdup(emsg2->sig); - emsg3->src = strdup(emsg2->src); + emsg3 = calloc(1, sizeof(Edje_Message_Signal)); + if (emsg2->sig) emsg3->sig = strdup(emsg2->sig); + if (emsg2->src) emsg3->src = strdup(emsg2->src); msg = (unsigned char *)emsg3; } break; diff --git a/legacy/edje/src/lib/edje_program.c b/legacy/edje/src/lib/edje_program.c index 86d3691b99..178ca97cee 100644 --- a/legacy/edje/src/lib/edje_program.c +++ b/legacy/edje/src/lib/edje_program.c @@ -234,7 +234,7 @@ edje_object_animation_set(Evas_Object *obj, int on) } else { - _edje_emit(ed, "load", ""); + _edje_emit(ed, "load", NULL); if (evas_object_visible_get(obj)) { evas_object_hide(obj); @@ -811,9 +811,7 @@ _edje_emit_handle(Edje *ed, char *sig, char *src) Edje_Program *pr; pr = l->data; - if ((pr->signal) && - (pr->source) && - (_edje_glob_match(sig, pr->signal)) && + if ((_edje_glob_match(sig, pr->signal)) && (_edje_glob_match(src, pr->source))) { #ifdef EDJE_PROGRAM_CACHE diff --git a/legacy/edje/src/lib/edje_text.c b/legacy/edje/src/lib/edje_text.c index 042e67c773..9a5a93c6a2 100644 --- a/legacy/edje/src/lib/edje_text.c +++ b/legacy/edje/src/lib/edje_text.c @@ -513,6 +513,9 @@ _edje_text_recalc_apply(Edje *ed, Edje_Real_Part *ep, text = chosen_desc->text.text; font = chosen_desc->text.font; size = chosen_desc->text.size; + + if (!text) text = ""; + if (!font) font = ""; if ((chosen_desc->text.text_class) && (chosen_desc->text.text_class[0] != 0)) { diff --git a/legacy/edje/src/lib/edje_util.c b/legacy/edje/src/lib/edje_util.c index 54f4b3e21f..424fb9aa2f 100644 --- a/legacy/edje/src/lib/edje_util.c +++ b/legacy/edje/src/lib/edje_util.c @@ -1587,13 +1587,14 @@ _edje_fetch(Evas_Object *obj) int _edje_glob_match(char *str, char *glob) { - if (glob[0] == 0) + if ((!glob) || (glob[0] == 0)) { - if (str[0] == 0) return 1; + if ((!str) || (str[0] == 0)) return 1; + if ((glob) && (glob[0] == '*')) return 1; return 0; } - if (!strcmp(glob, "*")) return 1; - if (!fnmatch(glob, str, 0)) return 1; + if (glob[0] == '*') return 1; + if ((glob) && (str) && (!fnmatch(glob, str, 0))) return 1; return 0; }