summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSoohye Shin <soohye.shin@samsung.com>2015-10-12 19:15:45 +0900
committerSoohye Shin <soohye.shin@samsung.com>2015-10-12 19:15:45 +0900
commit72f945bd0a887407459759df7ba1128c8d8543ec (patch)
tree41217be23deeccadfba3bbad3898287ff527002b
parentdb32dc32366675a628a1f11686284e2591d40ab9 (diff)
downloadair_home-72f945bd0a887407459759df7ba1128c8d8543ec.tar.gz
air_home-72f945bd0a887407459759df7ba1128c8d8543ec.tar.bz2
air_home-72f945bd0a887407459759df7ba1128c8d8543ec.zip
memory leak fix - missed to unload photo data
Change-Id: I6e6278a9da71de5151d60f916e7df883956ed8ea Signed-off-by: Soohye Shin <soohye.shin@samsung.com>
-rw-r--r--src/data/data_photo.c26
1 files changed, 19 insertions, 7 deletions
diff --git a/src/data/data_photo.c b/src/data/data_photo.c
index f31e876..a1a8049 100644
--- a/src/data/data_photo.c
+++ b/src/data/data_photo.c
@@ -40,16 +40,19 @@ static bool _get_media(media_info_h m, void *data)
list = data;
+ r = media_info_get_media_id(m, &mediaid);
+ if (r != MEDIA_CONTENT_ERROR_NONE || !mediaid) {
+ _ERR("failed to get media id");
+ return false;
+ }
+
r = media_info_get_thumbnail_path(m, &thumb);
if (r != MEDIA_CONTENT_ERROR_NONE || !thumb) {
_ERR("failed to get thumb");
+ free(mediaid);
return false;
}
- r = media_info_get_media_id(m, &mediaid);
- if (r != MEDIA_CONTENT_ERROR_NONE || !mediaid)
- _ERR("failed to get media id");
-
favorite = false;
r = app_contents_favorite_check(CONTENTS_PHOTO, mediaid, &favorite);
if (r != APP_CONTENTS_ERROR_NONE)
@@ -58,6 +61,8 @@ static bool _get_media(media_info_h m, void *data)
di = calloc(1, sizeof(*di));
if (!di) {
_ERR("failed to calloc datamgr item");
+ free(mediaid);
+ free(thumb);
return false;
}
di->icon = strdup(thumb);
@@ -66,15 +71,22 @@ static bool _get_media(media_info_h m, void *data)
*list = eina_list_append(*list, di);
+ free(mediaid);
+ free(thumb);
+
return true;
}
static void _unload_photo(struct datamgr *dm)
{
- char *thumb;
+ struct datamgr_item *di;
- EINA_LIST_FREE(dm->list, thumb)
- free(thumb);
+ EINA_LIST_FREE(dm->list, di) {
+ free(di->icon);
+ free(di->focus_icon);
+
+ free(di);
+ }
dm->list = NULL;
}