efm/widget robustness - handle cleared or invalid widgets

This commit is contained in:
Carsten Haitzler 2020-03-08 12:27:02 +00:00
parent 4a69f273fa
commit b22831fb30
2 changed files with 12 additions and 18 deletions

View File

@ -50,27 +50,24 @@ e_widget_label_add(Evas *evas, const char *label)
E_API void E_API void
e_widget_label_text_set(Evas_Object *obj, const char *text) e_widget_label_text_set(Evas_Object *obj, const char *text)
{ {
E_Widget_Data *wd; E_Widget_Data *wd = e_widget_data_get(obj);
if (!wd) return;
wd = e_widget_data_get(obj);
elm_object_text_set(wd->text, text); elm_object_text_set(wd->text, text);
} }
static void static void
_e_wid_del_hook(Evas_Object *obj) _e_wid_del_hook(Evas_Object *obj)
{ {
E_Widget_Data *wd; E_Widget_Data *wd = e_widget_data_get(obj);
wd = e_widget_data_get(obj);
free(wd); free(wd);
if (!wd) return;
} }
static void static void
_e_wid_disable_hook(Evas_Object *obj) _e_wid_disable_hook(Evas_Object *obj)
{ {
E_Widget_Data *wd; E_Widget_Data *wd = e_widget_data_get(obj);
if (!wd) return;
wd = e_widget_data_get(obj);
elm_object_disabled_set(wd->text, e_widget_disabled_get(obj)); elm_object_disabled_set(wd->text, e_widget_disabled_get(obj));
} }

View File

@ -45,9 +45,8 @@ e_widget_table_object_append(Evas_Object *obj, Evas_Object *sobj, int col, int r
E_API void E_API void
e_widget_table_object_align_append(Evas_Object *obj, Evas_Object *sobj, int col, int row, int colspan, int rowspan, int fill_w, int fill_h, int expand_w, int expand_h, double ax, double ay) e_widget_table_object_align_append(Evas_Object *obj, Evas_Object *sobj, int col, int row, int colspan, int rowspan, int fill_w, int fill_h, int expand_w, int expand_h, double ax, double ay)
{ {
E_Widget_Data *wd; E_Widget_Data *wd = e_widget_data_get(obj);
if (!wd) return;
wd = e_widget_data_get(obj);
if (fill_w) ax = -1; if (fill_w) ax = -1;
if (fill_h) ay = -1; if (fill_h) ay = -1;
@ -70,9 +69,8 @@ e_widget_table_object_repack(Evas_Object *obj EINA_UNUSED, Evas_Object *sobj, in
E_API void E_API void
e_widget_table_unpack(Evas_Object *obj, Evas_Object *sobj) e_widget_table_unpack(Evas_Object *obj, Evas_Object *sobj)
{ {
E_Widget_Data *wd; E_Widget_Data *wd = e_widget_data_get(obj);
if (!wd) return;
wd = e_widget_data_get(obj);
e_widget_sub_object_del(obj, sobj); e_widget_sub_object_del(obj, sobj);
elm_table_unpack(wd->o_table, sobj); elm_table_unpack(wd->o_table, sobj);
} }
@ -80,9 +78,8 @@ e_widget_table_unpack(Evas_Object *obj, Evas_Object *sobj)
static void static void
_e_wid_del_hook(Evas_Object *obj) _e_wid_del_hook(Evas_Object *obj)
{ {
E_Widget_Data *wd; E_Widget_Data *wd = e_widget_data_get(obj);
if (!wd) return;
wd = e_widget_data_get(obj);
free(wd); free(wd);
} }