edje: do not leak in case of error.

@fix CID 1191310 and CID 1191311
This commit is contained in:
Cedric BAIL 2014-03-07 15:01:36 +09:00
parent 72c8b04e59
commit 1b1e0450a2
1 changed files with 11 additions and 7 deletions

View File

@ -4336,17 +4336,21 @@ edje_edit_state_external_param_set(Evas_Object *obj, const char *part, const cha
eina_stringshare_del(sname); eina_stringshare_del(sname);
} }
if (!found && p && external->external_params) if (!found)
external->external_params = eina_list_append(external->external_params, p); {
if (external)
external->external_params = eina_list_append(external->external_params, p);
else
free(p);
}
if (rp->typedata.swallow && rp->param1.external_params) if (rp->typedata.swallow && rp->param1.external_params)
_edje_external_parsed_params_free(rp->typedata.swallow->swallowed_object, _edje_external_parsed_params_free(rp->typedata.swallow->swallowed_object,
rp->param1.external_params); rp->param1.external_params);
if (rp->typedata.swallow && external->external_params) if (rp->typedata.swallow && external->external_params)
rp->param1.external_params = \ rp->param1.external_params = \
_edje_external_params_parse(rp->typedata.swallow->swallowed_object, _edje_external_params_parse(rp->typedata.swallow->swallowed_object,
external->external_params); external->external_params);
return EINA_TRUE; return EINA_TRUE;
} }