edje_cc correctly copies group.limits when inheriting, FIXME--

This commit is contained in:
Mike Blumenkrantz 2014-03-24 15:26:49 -04:00
parent 15df46b707
commit 7d9d42a281
1 changed files with 57 additions and 1 deletions

View File

@ -2860,7 +2860,63 @@ st_collections_group_inherit(void)
pcp2 = (Edje_Part_Collection_Parser *)pc2;
pcp->default_mouse_events = pcp2->default_mouse_events;
// FIXME: Handle limits dup
{
Edje_Limit **elp;
elp = realloc(pc->limits.vertical,
pc->limits.vertical_count + pc2->limits.vertical_count * sizeof(Edje_Limit *));
if (!elp)
{
ERR("Not enough memory.");
exit(-1);
}
pc->limits.vertical = elp;
offset = pc->limits.vertical_count;
for (i = 0; i < pc2->limits.vertical_count; i++)
{
Edje_Limit *el;
el = mem_alloc(SZ(Edje_Limit));
if (!el)
{
ERR("Not enough memory.");
exit(-1);
}
pc->limits.vertical[i + offset] = el;
el->name = STRDUP(pc2->limits.vertical[i]->name);
el->value = pc2->limits.vertical[i]->value;
pc->limits.vertical_count++;
}
elp = realloc(pc->limits.horizontal,
pc->limits.horizontal_count + pc2->limits.horizontal_count * sizeof(Edje_Limit *));
if (!elp)
{
ERR("Not enough memory.");
exit(-1);
}
pc->limits.horizontal = elp;
offset = pc->limits.horizontal_count;
for (i = 0; i < pc2->limits.horizontal_count; i++)
{
Edje_Limit *el;
el = mem_alloc(SZ(Edje_Limit));
if (!el)
{
ERR("Not enough memory.");
exit(-1);
}
pc->limits.horizontal[i + offset] = el;
el->name = STRDUP(pc2->limits.horizontal[i]->name);
el->value = pc2->limits.horizontal[i]->value;
pc->limits.horizontal_count++;
}
}
offset = pc->parts_count;
for (i = 0 ; i < pc2->parts_count ; i++)