From 9730eb1f47341173063148332b9a833ff1377f45 Mon Sep 17 00:00:00 2001 From: Cedric BAIL Date: Tue, 20 Dec 2016 15:47:57 -0800 Subject: [PATCH] edje: fix float comparison warning in edje_cc. --- src/bin/edje/edje_cc_handlers.c | 22 ++++++++++++++-------- src/bin/edje/edje_cc_parse.c | 4 ++-- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/src/bin/edje/edje_cc_handlers.c b/src/bin/edje/edje_cc_handlers.c index 3861cd9aec..188e169a07 100644 --- a/src/bin/edje/edje_cc_handlers.c +++ b/src/bin/edje/edje_cc_handlers.c @@ -3676,7 +3676,7 @@ st_collections_base_scale(void) check_min_arg_count(1); edje_file->base_scale = FROM_DOUBLE(parse_float_range(0, 0.0, 999999999.0)); - if (edje_file->base_scale == ZERO) + if (EQ(edje_file->base_scale, ZERO)) { ERR("The base_scale is 0.0. The value should be bigger than 0.0."); exit(-1); @@ -8095,7 +8095,7 @@ st_collections_group_parts_part_description_inherit(void) exit(-1); } - if (!strcmp (parent_name, "default") && parent_val == 0.0) + if (!strcmp (parent_name, "default") && EINA_DBL_CMP(parent_val, 0.0)) parent = ep->default_desc; else { @@ -8127,8 +8127,8 @@ st_collections_group_parts_part_description_inherit(void) } } - if (min_dst) - { + if (EINA_DBL_CMP(min_dst, 0.0)) + { WRN("%s:%i: couldn't find an exact match in part '%s' when looking for '%s' %lf. Falling back to nearest one '%s' %lf.", file_in, line - 1, ep->name, parent_name, parent_val, parent ? parent->state.name : NULL, parent ? parent->state.value : 0); } @@ -8390,8 +8390,12 @@ _part_description_state_update(Edje_Part_Description_Common *ed) Edje_Part *ep = current_part; if (ed == ep->default_desc) return; - if ((ep->default_desc->state.name && !strcmp(ed->state.name, ep->default_desc->state.name) && ed->state.value == ep->default_desc->state.value) || - (!ep->default_desc->state.name && !strcmp(ed->state.name, "default") && ed->state.value == ep->default_desc->state.value)) + if ((ep->default_desc->state.name && + !strcmp(ed->state.name, ep->default_desc->state.name) && + EQ(ed->state.value, ep->default_desc->state.value)) || + (!ep->default_desc->state.name && + !strcmp(ed->state.name, "default") && + EQ(ed->state.value, ep->default_desc->state.value))) { if (ep->type == EDJE_PART_TYPE_IMAGE) _edje_part_description_image_remove((Edje_Part_Description_Image*) ed); @@ -8407,7 +8411,8 @@ _part_description_state_update(Edje_Part_Description_Common *ed) unsigned int i; for (i = 0; i < ep->other.desc_count - 1; ++i) { - if (!strcmp(ed->state.name, ep->other.desc[i]->state.name) && ed->state.value == ep->other.desc[i]->state.value) + if (!strcmp(ed->state.name, ep->other.desc[i]->state.name) && + EQ(ed->state.value, ep->other.desc[i]->state.value)) { if (ep->type == EDJE_PART_TYPE_IMAGE) _edje_part_description_image_remove((Edje_Part_Description_Image*) ed); @@ -8462,7 +8467,8 @@ st_collections_group_parts_part_description_state(void) val = parse_float_range(1, 0.0, 1.0); /* if only default desc exists and current desc is not default, commence paddling */ - if ((!ep->other.desc_count) && (val || (!eina_streq(s, "default")))) + if ((!ep->other.desc_count) && + (!EINA_DBL_CMP(val, 0) || (!eina_streq(s, "default")))) { ERR("parse error %s:%i. invalid state name: '%s'. \"default\" state must always be first.", file_in, line - 1, s); diff --git a/src/bin/edje/edje_cc_parse.c b/src/bin/edje/edje_cc_parse.c index e5a73862c0..93e857e2f4 100644 --- a/src/bin/edje/edje_cc_parse.c +++ b/src/bin/edje/edje_cc_parse.c @@ -1891,7 +1891,7 @@ _calcf(char op, double a, double b) a -= b; return a; case '/': - if (b != 0) a /= b; + if (NEQ(b, 0)) a /= b; else ERR("%s:%i divide by zero", file_in, line - 1); return a; @@ -1899,7 +1899,7 @@ _calcf(char op, double a, double b) a *= b; return a; case '%': - if (0 != b) a = (double)((int)a % (int)b); + if (NEQ(b, 0)) a = (double)((int)a % (int)b); else ERR("%s:%i modula by zero", file_in, line - 1); return a;