edje_cc: fix group inheriting
authorHosang Kim <hosang12.kim@samsung.com>
Tue, 15 Mar 2016 18:23:28 +0000 (11:23 -0700)
committerCedric Bail <cedric@osg.samsung.com>
Tue, 15 Mar 2016 18:23:32 +0000 (11:23 -0700)
Summary:
When edje_cc inherits group, group's script wasn't copied.
So base group and inherited groups use same pointer.
When edje_cc makes lookups for script, loopkups is overwritten.

Test Plan: elementary_test -> shown error log

Reviewers: Hermet, woohyun, cedric, raster

Subscribers: jpeg

Differential Revision: https://phab.enlightenment.org/D3796

Signed-off-by: Cedric Bail <cedric@osg.samsung.com>
src/bin/edje/edje_cc_handlers.c

index 173ad31..8fb43cf 100644 (file)
@@ -4447,8 +4447,8 @@ st_collections_group_inherit(void)
         cp->script = STRDUP(cp2->script);
         cp->original = STRDUP(cp2->original);
         cd->is_lua = cd2->is_lua;
-        cd->shared = cd2->shared;
-        cd->original = cd2->original;
+        cd->shared = STRDUP(cd2->shared);
+        cd->original = STRDUP(cd2->original);
         cd->programs = eina_list_append(cd->programs, cp);
         data_queue_copied_anonymous_lookup(pc, &(cp2->id), &(cp->id));
      }