oooh bad memory pointer handling as part of group inheritance (part
authorraster <raster@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Thu, 13 Oct 2011 00:09:04 +0000 (00:09 +0000)
committerraster <raster@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Thu, 13 Oct 2011 00:09:04 +0000 (00:09 +0000)
overriding) patches....!!!!! fix!

git-svn-id: http://svn.enlightenment.org/svn/e/trunk/edje@64028 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

src/bin/edje_cc_handlers.c

index b64a53b..db443ea 100644 (file)
@@ -2647,13 +2647,14 @@ st_collections_group_parts_part_name(void)
    check_arg_count(1);
 
    pc = eina_list_data_get(eina_list_last(edje_collections));
-   ep = pc->parts[pc->parts_count - 1];
+   ep = current_part;
    ep->name = parse_str(0);
 
+   if (ep->name)
      {
         unsigned int i;
 
-        for (i = 0; i < pc->parts_count - 1; ++i)
+        for (i = 0; i < (pc->parts_count - 1); i++)
           {
              if (pc->parts[i]->name && (!strcmp(pc->parts[i]->name, ep->name)))
                {
@@ -2669,7 +2670,7 @@ st_collections_group_parts_part_name(void)
                        free(ep);
                        pc->parts_count--;
                        pc->parts = realloc(pc->parts, pc->parts_count * sizeof (Edje_Part *));
-                       current_part = pc->parts[i];
+                       ep = current_part = pc->parts[i];
                        epp->can_override = EINA_FALSE;
                     }
                }