summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarsten Haitzler (Rasterman) <raster@rasterman.com>2016-08-04 18:19:42 +0900
committerCarsten Haitzler (Rasterman) <raster@rasterman.com>2016-08-04 18:19:42 +0900
commitc59995916e9d240c816ac96242a4cd5106736eb2 (patch)
tree40841998f33365240f60e41c5b94646acbc8f398
parentb07617ea76b0512eeb2fb3492ff7542d8ac1d7e0 (diff)
edje - fix access to freed data struct during object shutdown
this fixes T4181
-rw-r--r--src/lib/edje/edje_load.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/lib/edje/edje_load.c b/src/lib/edje/edje_load.c
index 10602e4d16..f3e1e77d1e 100644
--- a/src/lib/edje/edje_load.c
+++ b/src/lib/edje/edje_load.c
@@ -1655,6 +1655,7 @@ _edje_file_del(Edje *ed)
1655 rp->typedata.container->anim = NULL; 1655 rp->typedata.container->anim = NULL;
1656 } 1656 }
1657 free(rp->typedata.container); 1657 free(rp->typedata.container);
1658 rp->typedata.container = NULL;
1658 } 1659 }
1659 else if ((rp->type == EDJE_RP_TYPE_TEXT) && 1660 else if ((rp->type == EDJE_RP_TYPE_TEXT) &&
1660 (rp->typedata.text)) 1661 (rp->typedata.text))
@@ -1664,6 +1665,7 @@ _edje_file_del(Edje *ed)
1664 eina_stringshare_del(rp->typedata.text->cache.in_str); 1665 eina_stringshare_del(rp->typedata.text->cache.in_str);
1665 eina_stringshare_del(rp->typedata.text->cache.out_str); 1666 eina_stringshare_del(rp->typedata.text->cache.out_str);
1666 free(rp->typedata.text); 1667 free(rp->typedata.text);
1668 rp->typedata.text = NULL;
1667 } 1669 }
1668 else if ((rp->type == EDJE_RP_TYPE_SWALLOW) && 1670 else if ((rp->type == EDJE_RP_TYPE_SWALLOW) &&
1669 (rp->typedata.swallow)) 1671 (rp->typedata.swallow))
@@ -1690,6 +1692,7 @@ _edje_file_del(Edje *ed)
1690 rp->typedata.swallow->swallowed_object = NULL; 1692 rp->typedata.swallow->swallowed_object = NULL;
1691 } 1693 }
1692 free(rp->typedata.swallow); 1694 free(rp->typedata.swallow);
1695 rp->typedata.swallow = NULL;
1693 } 1696 }
1694 1697
1695 if (rp->object) 1698 if (rp->object)