efl/src/lib/edje
Yeongjong Lee 4c89d5021b edje_calc: replace eina_stringshare_ref with eina_stringshare_add
Summary:
When there is circular dependency in edc, a bunch of CRI log is printed.
This patch fixes it.
```
ERR<10159>:edje lib/edje/edje_calc.c:3919 _edje_part_recalc() Circular dependency in the group 'test' : longpartname -> longpartname -> longpartname2
ERR<10159>:edje lib/edje/edje_calc.c:3896 _edje_part_recalc() Circular dependency when calculating part "longpartname". Already calculating XY [03] axes. Need to calculate Y [02] axes
CRI<10159>: lib/eina/eina_share_common.c:559 _eina_share_common_node_from_str() *** Eina Magic Check Failed at 0x7fb7c93ebf60 !!!
    Input handle is wrong type.
    Expected: 98761254 - Eina Stringshare Node
    Supplied: 2f736e6f - (unknown)

CRI<10159>: lib/eina/eina_share_common.c:559 _eina_share_common_node_from_str() *** Eina Magic Check Failed at 0x7fb7c93ec5d1 !!!
    Input handle is wrong type.
    Expected: 98761254 - Eina Stringshare Node
    Supplied: 5f747261 - (unknown)
```
If string is already stored, `eina_stringshare_add` increase its reference count.

Test Plan:
test.c
```
//edje_cc test.edc && gcc -o test test.c `pkg-config --libs --cflags elementary`
#include <Elementary.h>

int main(int argc, char **argv)
{
   elm_init(argc, argv);

   Evas_Object *win = elm_win_util_standard_add("test", "test");

   Evas_Object *layout = elm_layout_add(win);
   elm_layout_file_set(layout, "./test.edj", "test");
   elm_win_resize_object_add(win, layout);
   evas_object_show(layout);
   evas_object_resize(win, 200, 200);
   evas_object_show(win);

   elm_run();

   elm_shutdown();

   return 0;
}
```

test.edc
```
collections {
   group { name: "test";
      parts {
         rect { name: "longpartname";
            desc { "default";
                rel1.to: "longpartname2";
            }
         }
         rect { name: "longpartname2";
            type: RECT;
            desc { "default";
                rel2.to: "longpartname";
            }
         }
      }
   }
}
```

Reviewers: SanghyeonLee, zmike

Reviewed By: SanghyeonLee

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D8717
2019-05-01 16:17:25 -04:00
..
Edje.h efl: remove EFL_EO_API_SUPPORT macro 2019-03-18 12:13:59 +01:00
Edje.hh
Edje_Common.h Edje: update doc. 2018-09-21 19:33:10 +09:00
Edje_Edit.h docs: Fix typos and some wrong expressions in API reference doc. 2018-08-30 14:01:21 +09:00
Edje_Eo.h edje_edit: remove all legacy usage from eo files 2019-03-06 13:03:00 -08:00
Edje_Legacy.h docs: Fix common misspellings in H files 2019-04-02 13:28:48 +02:00
edje_box_layout.c evas: remove all legacy usage from eo files 2019-03-06 19:05:48 +01:00
edje_cache.c Revert "edje: code refactoring for readibility." 2018-06-21 19:33:41 +09:00
edje_calc.c edje_calc: replace eina_stringshare_ref with eina_stringshare_add 2019-05-01 16:17:25 -04:00
edje_callbacks.c edje: Pass extra signal data to program_run 2018-05-08 12:26:13 -05:00
edje_convert.c edje: add efl_version property 2017-06-14 14:24:08 -07:00
edje_convert.h docs: Fix common misspellings in H files 2019-04-02 13:28:48 +02:00
edje_data.c edje: free more data descriptors on shutdown 2019-02-26 14:49:53 -05:00
edje_edit.c edje_edit: remove all legacy usage from eo files 2019-03-06 13:03:00 -08:00
edje_edit_eo.c edje_edit: remove all legacy usage from eo files 2019-03-06 13:03:00 -08:00
edje_edit_eo.h edje_edit: remove all legacy usage from eo files 2019-03-06 13:03:00 -08:00
edje_edit_eo.legacy.h edje_edit: remove all legacy usage from eo files 2019-03-06 13:03:00 -08:00
edje_embryo.c Revert "edje: code refactoring for readibility." 2018-06-21 19:33:41 +09:00
edje_entry.c efl_canvas_scene: rename event from focus,* to scene_focus,* 2019-03-08 09:02:30 -05:00
edje_external.c edje: Remove external_object_get from EO 2017-05-30 13:54:34 +09:00
edje_global.eo efl: convert all classes to the new eolian syntax 2019-01-18 16:31:26 +01:00
edje_legacy.c efl_text_cursor: remove all legacy usage from eo files 2019-03-06 13:02:36 -08:00
edje_load.c efl.gfx: remove Efl.Gfx.Image_Load_Error 2019-03-04 13:36:57 -05:00
edje_lua.c edje_lua: Wrap calls to edje_object_part_object_get with freeze/thaw 2018-06-25 11:36:52 -04:00
edje_lua2.c edje_lua2: add null check 2018-04-23 13:39:36 -07:00
edje_lua_script_only.c
edje_main.c efl_gfx_color_class: make this a mixin and move color_class_code here 2019-02-11 12:34:12 +01:00
edje_match.c edje: migrate Eo API to use Eo callback instead of opaque type. 2019-02-06 13:48:43 -05:00
edje_message_queue.c Revert "edje: code refactoring for readibility." 2018-06-21 19:33:41 +09:00
edje_misc.c
edje_module.c edje modules - warn - use proper hash free func prototype 2018-11-09 11:44:00 +00:00
edje_multisense.c edje/multisense: always return muted=true if multisense is disabled 2018-08-16 10:16:34 -04:00
edje_part.c Efl.Gfx.Entity (from Efl.Gfx) 2018-04-24 09:03:32 -07:00
edje_part_box.c evas: remove all legacy usage from eo files 2019-03-06 19:05:48 +01:00
edje_part_external.c efl_canvas_layout_part_external: implement missing functions 2019-02-27 14:57:03 -05:00
edje_part_helper.h edje: fix edje_part_helpers refcounting 2018-06-10 17:01:33 +02:00
edje_part_invalid.c efl_container: remove content_remove 2019-02-27 21:20:33 +01:00
edje_part_swallow.c efl_container: remove content_remove 2019-02-27 21:20:33 +01:00
edje_part_table.c evas: remove all legacy usage from eo files 2019-03-06 19:05:48 +01:00
edje_part_text.c edje: add missing NULL check 2019-02-13 19:02:46 +09:00
edje_private.h edje_calc: make INTP use TO_INT_ROUND 2019-03-08 13:28:22 +09:00
edje_program.c interfaces: move animator,tick to efl.canvas.object and remove efl.animator 2019-02-21 22:04:30 +01:00
edje_signal.c edje: migrate Eo API to use Eo callback instead of opaque type. 2019-02-06 13:48:43 -05:00
edje_smart.c evas: restore legacy types which were defined to eo types 2019-03-08 12:06:24 -08:00
edje_text.c evas: restore legacy types which were defined to eo types 2019-03-08 12:06:24 -08:00
edje_textblock.c Canvas layout: support more Efl.Text.* with efl_part 2018-11-06 18:33:56 +02:00
edje_textblock_styles.c edje: Dont append font source if fonts are not embedded in edje 2018-04-16 11:23:23 -07:00
edje_types.eot edje.types: mark Efl.Canvas.Layout_Part_Type beta again 2019-03-11 16:34:05 +01:00
edje_util.c evas: remove all legacy usage from eo files 2019-03-06 19:05:48 +01:00
edje_var.c edje: convert var timer list to inlist 2019-01-18 14:11:05 -06:00
efl_canvas_layout.eo docs: Remove obsolete @since tags from EO files 2019-03-20 20:16:05 +01:00
efl_canvas_layout_eo.legacy.c efl_canvas_layout: remove all legacy usage from eo files 2019-03-06 13:02:58 -08:00
efl_canvas_layout_eo.legacy.h efl_canvas_layout: remove all legacy usage from eo files 2019-03-06 13:02:58 -08:00
efl_canvas_layout_part.eo docs: Remove obsolete @since tags from EO files 2019-03-20 20:16:05 +01:00
efl_canvas_layout_part_box.eo efl_container: remove content_remove 2019-02-27 21:20:33 +01:00
efl_canvas_layout_part_external.eo docs: Remove obsolete @since tags from EO files 2019-03-20 20:16:05 +01:00
efl_canvas_layout_part_invalid.eo docs: Remove obsolete @since tags from EO files 2019-03-20 20:16:05 +01:00
efl_canvas_layout_part_swallow.eo Mark BETA classes individually 2019-02-14 17:46:50 +01:00
efl_canvas_layout_part_table.eo efl_container: remove content_remove 2019-02-27 21:20:33 +01:00
efl_canvas_layout_part_text.eo eo files: mark a bunch of types with @beta 2019-03-08 16:40:40 +01:00
efl_layout_calc.eo docs: Fix common misspellings in EO files 2019-04-02 11:32:05 +02:00
efl_layout_group.eo docs: Add @since 1.22 to all stable classes' EO docs 2019-03-22 16:57:36 +01:00
efl_layout_group_eo.legacy.c efl_layout_group: remove all legacy usage from eo files 2019-03-06 13:02:56 -08:00
efl_layout_group_eo.legacy.h efl_layout_group: remove all legacy usage from eo files 2019-03-06 13:02:56 -08:00
efl_layout_signal.eo docs: Fix common misspellings in EO files 2019-04-02 11:32:05 +02:00
meson.build build: add a option to disable eo file installation 2019-03-14 12:44:00 -04:00