Imported Upstream version 1.7.4
[platform/upstream/edje.git] / src / bin / edje_cc_out.c
index 3850e13..bf2ddcd 100644 (file)
@@ -1643,7 +1643,9 @@ reorder_parts(void)
                             if (ep2->reorder.linked_prev)
                               ERR("Unable to insert two or more parts in same part \"%s\".",
                                   pc->parts[j]->name);
-                            k = j - 1;
+                            /* Need it to be able to insert an element before the first */
+                            if (j == 0) k = 0;
+                            else k = j - 1;
                            found = EINA_TRUE;
                             ep2->reorder.linked_prev += ep->reorder.linked_prev + 1;
                             ep->reorder.before = (Edje_Part_Parser *)pc->parts[j];
@@ -1692,10 +1694,10 @@ reorder_parts(void)
                          }
                        if (i > k)
                          {
-                            for (j = i - ep->reorder.linked_prev - 1 ; j >= k ; j--)
+                            for (j = i - ep->reorder.linked_prev ; j > k; j--)
                               {
-                                 pc->parts[j + amount] = pc->parts[j];
-                                 pc->parts[j + amount]->id = j + amount;
+                                 pc->parts[j + amount - 1] = pc->parts[j - 1];
+                                 pc->parts[j + amount - 1]->id = j + amount - 1;
                               }
                             for (j = 0 ; j < amount ; j++)
                               {