Edje: edje_edit - fix Segmentation Fault on new BOX part 75/49775/2
authorVitalii Vorobiov <vi.vorobiov@samsung.com>
Mon, 9 Feb 2015 16:58:26 +0000 (18:58 +0200)
committerNikita Belyavskij <m.biliavskyi@samsung.com>
Thu, 22 Oct 2015 23:39:25 +0000 (16:39 -0700)
After adding new part (with type BOX) there was a SIGSEV because
of structure that wasn't initialized.

@fix

Change-Id: If997b4cd494743b87b7fe957141498c23ca1f88e
origin: upstream

src/lib/edje/edje_edit.c

index d19a19a..8426114 100644 (file)
@@ -3088,11 +3088,18 @@ _edje_edit_real_part_add(Evas_Object *obj, const char *name, Edje_Part_Type type
         rp->typedata.text = calloc(1, sizeof(Edje_Real_Part_Text));
         rp->object = evas_object_textblock_add(ed->base->evas);
      }
-   else if (ep->type == EDJE_PART_TYPE_BOX ||
-            ep->type == EDJE_PART_TYPE_TABLE)
+   else if (ep->type == EDJE_PART_TYPE_BOX)
      {
         rp->type = EDJE_RP_TYPE_CONTAINER;
         rp->typedata.container = calloc(1, sizeof(Edje_Real_Part_Container));
+        rp->object = evas_object_box_add(ed->base->evas);
+        rp->typedata.container->anim = _edje_box_layout_anim_new(rp->object);
+     }
+   else if (ep->type == EDJE_PART_TYPE_TABLE)
+     {
+        rp->type = EDJE_RP_TYPE_CONTAINER;
+        rp->typedata.container = calloc(1, sizeof(Edje_Real_Part_Container));
+        rp->object = evas_object_table_add(ed->base->evas);
      }
    else if (ep->type != EDJE_PART_TYPE_SPACER)
      ERR("wrong part type %i!", ep->type);