discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=eed3e5dfe9e00b9b27955e8e7e6a42fcf5e87ff4
commit eed3e5dfe9e00b9b27955e8e7e6a42fcf5e87ff4 Author: Chris Michael <[email protected]> Date: Mon Jun 25 11:30:32 2018 -0400 efl_ui_layout_pack: Wrap calls to edje_object_part_object_get with Summary: freeze/thaw @ref T6884 Depends on D6418 Reviewers: zmike, ManMower Reviewed By: zmike Subscribers: cedric, #committers Tags: #efl Maniphest Tasks: T6884 Differential Revision: https://phab.enlightenment.org/D6419 --- src/lib/elementary/efl_ui_layout_pack.c | 37 +++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/src/lib/elementary/efl_ui_layout_pack.c b/src/lib/elementary/efl_ui_layout_pack.c index d4f8293edd..4cd9915bbf 100644 --- a/src/lib/elementary/efl_ui_layout_pack.c +++ b/src/lib/elementary/efl_ui_layout_pack.c @@ -76,7 +76,10 @@ EOLIAN static Eina_Iterator * _efl_ui_layout_part_box_efl_container_content_iterate(Eo *obj, Efl_Ui_Layout_Box_Data *pd) { Eina_Iterator *it; + + edje_object_freeze(pd->obj); Eo *pack = (Eo *) edje_object_part_object_get(pd->obj, pd->part); + edje_object_thaw(pd->obj); it = evas_object_box_iterator_new(pack); return efl_canvas_iterator_create(obj, it, NULL); } @@ -84,7 +87,9 @@ _efl_ui_layout_part_box_efl_container_content_iterate(Eo *obj, Efl_Ui_Layout_Box EOLIAN static int _efl_ui_layout_part_box_efl_container_content_count(Eo *obj EINA_UNUSED, Efl_Ui_Layout_Box_Data *pd) { + edje_object_freeze(pd->obj); Eo *pack = (Eo *) edje_object_part_object_get(pd->obj, pd->part); + edje_object_thaw(pd->obj); return evas_obj_box_count(pack); } @@ -142,7 +147,10 @@ _efl_ui_layout_part_box_efl_pack_linear_pack_after(Eo *obj EINA_UNUSED, Efl_Ui_L { const Efl_Gfx_Entity *other; int index; + + edje_object_freeze(pd->obj); Eo *pack = (Eo *) edje_object_part_object_get(pd->obj, pd->part); + edje_object_thaw(pd->obj); index = efl_pack_index_get(pack, existing); if (index < 0) return EINA_FALSE; @@ -164,7 +172,10 @@ _efl_ui_layout_part_box_efl_pack_linear_pack_content_get(Eo *obj EINA_UNUSED, Ef { Evas_Object_Box_Option *opt; Evas_Object_Box_Data *priv; + + edje_object_freeze(pd->obj); Eo *pack = (Eo *) edje_object_part_object_get(pd->obj, pd->part); + edje_object_thaw(pd->obj); priv = efl_data_scope_get(pack, EVAS_BOX_CLASS); opt = eina_list_nth(priv->children, index); @@ -176,7 +187,10 @@ EOLIAN static Efl_Gfx_Entity * _efl_ui_layout_part_box_efl_pack_linear_pack_unpack_at(Eo *obj, Efl_Ui_Layout_Box_Data *pd, int index) { Efl_Gfx_Entity *subobj; + + edje_object_freeze(pd->obj); Eo *pack = (Eo *) edje_object_part_object_get(pd->obj, pd->part); + edje_object_thaw(pd->obj); subobj = efl_pack_content_get(pack, index); if (!subobj) return NULL; @@ -190,7 +204,9 @@ _efl_ui_layout_part_box_efl_pack_linear_pack_unpack_at(Eo *obj, Efl_Ui_Layout_Bo EOLIAN static int _efl_ui_layout_part_box_efl_pack_linear_pack_index_get(Eo *obj EINA_UNUSED, Efl_Ui_Layout_Box_Data *pd, const Efl_Gfx_Entity *subobj) { + edje_object_freeze(pd->obj); Eo *pack = (Eo *) edje_object_part_object_get(pd->obj, pd->part); + edje_object_thaw(pd->obj); return efl_pack_index_get(pack, subobj); } @@ -227,7 +243,10 @@ EOLIAN static Eina_Iterator * _efl_ui_layout_part_table_efl_container_content_iterate(Eo *obj, Efl_Ui_Layout_Table_Data *pd) { Eina_Iterator *it; + + edje_object_freeze(pd->obj); Eo *pack = (Eo *) edje_object_part_object_get(pd->obj, pd->part); + edje_object_thaw(pd->obj); it = evas_object_table_iterator_new(pack); @@ -237,7 +256,9 @@ _efl_ui_layout_part_table_efl_container_content_iterate(Eo *obj, Efl_Ui_Layout_T EOLIAN static int _efl_ui_layout_part_table_efl_container_content_count(Eo *obj EINA_UNUSED, Efl_Ui_Layout_Table_Data *pd) { + edje_object_freeze(pd->obj); Eo *pack = (Eo *) edje_object_part_object_get(pd->obj, pd->part); + edje_object_thaw(pd->obj); return evas_obj_table_count(pack); } @@ -276,7 +297,9 @@ _efl_ui_layout_part_table_efl_pack_table_pack_table(Eo *obj EINA_UNUSED, Efl_Ui_ EOLIAN static Efl_Gfx_Entity * _efl_ui_layout_part_table_efl_pack_table_table_content_get(Eo *obj EINA_UNUSED, Efl_Ui_Layout_Table_Data *pd, int col, int row) { + edje_object_freeze(pd->obj); Eo *pack = (Eo *) edje_object_part_object_get(pd->obj, pd->part); + edje_object_thaw(pd->obj); return evas_object_table_child_get(pack, col, row); } @@ -289,7 +312,10 @@ _efl_ui_layout_part_table_efl_pack_table_table_contents_get(Eo *obj EINA_UNUSED, Eina_List *list, *l = NULL; Evas_Object *sobj; unsigned short c, r, cs, rs; + + edje_object_freeze(pd->obj); Eo *pack = (Eo *) edje_object_part_object_get(pd->obj, pd->part); + edje_object_thaw(pd->obj); list = evas_object_table_children_get(pack); EINA_LIST_FREE(list, sobj) @@ -314,7 +340,10 @@ _efl_ui_layout_part_table_efl_pack_table_table_position_get(const Eo *obj EINA_U { unsigned short c, r, cs, rs; Eina_Bool ret; + + edje_object_freeze(pd->obj); Eo *pack = (Eo *) edje_object_part_object_get(pd->obj, pd->part); + edje_object_thaw(pd->obj); ret = evas_object_table_pack_get(pack, subobj, &c, &r, &cs, &rs); if (col) *col = c; @@ -328,7 +357,9 @@ _efl_ui_layout_part_table_efl_pack_table_table_position_get(const Eo *obj EINA_U EOLIAN static void _efl_ui_layout_part_table_efl_pack_table_table_size_get(const Eo *obj EINA_UNUSED, Efl_Ui_Layout_Table_Data *pd, int *cols, int *rows) { + edje_object_freeze(pd->obj); Eo *pack = (Eo *) edje_object_part_object_get(pd->obj, pd->part); + edje_object_thaw(pd->obj); evas_object_table_col_row_size_get(pack, cols, rows); } @@ -336,7 +367,10 @@ EOLIAN static int _efl_ui_layout_part_table_efl_pack_table_table_columns_get(const Eo *obj EINA_UNUSED, Efl_Ui_Layout_Table_Data *pd) { int cols, rows; + + edje_object_freeze(pd->obj); Eo *pack = (Eo *) edje_object_part_object_get(pd->obj, pd->part); + edje_object_thaw(pd->obj); evas_object_table_col_row_size_get(pack, &cols, &rows); return cols; } @@ -345,7 +379,10 @@ EOLIAN static int _efl_ui_layout_part_table_efl_pack_table_table_rows_get(const Eo *obj EINA_UNUSED, Efl_Ui_Layout_Table_Data *pd) { int cols, rows; + + edje_object_freeze(pd->obj); Eo *pack = (Eo *) edje_object_part_object_get(pd->obj, pd->part); + edje_object_thaw(pd->obj); evas_object_table_col_row_size_get(pack, &cols, &rows); return rows; } --
