summaryrefslogtreecommitdiff
path: root/src/grid/grid_movie.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/grid/grid_movie.c')
-rw-r--r--src/grid/grid_movie.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/src/grid/grid_movie.c b/src/grid/grid_movie.c
index 0341f57..520f228 100644
--- a/src/grid/grid_movie.c
+++ b/src/grid/grid_movie.c
@@ -194,6 +194,7 @@ static Eina_List *_get_name_list(struct datamgr *dmgr)
static Eina_List *_get_genre_list(struct datamgr *dmgr)
{
+ Eina_List *genre_list;
Eina_List *list;
struct group_info *gi;
@@ -202,6 +203,11 @@ static Eina_List *_get_genre_list(struct datamgr *dmgr)
return NULL;
}
+ genre_list = dmgr->ops->get_group(dmgr->handle,
+ E_GROUP_MEDIA_GENRE, NULL);
+ if (!genre_list)
+ return NULL;
+
gi = calloc(1, sizeof(*gi));
if (!gi) {
_ERR("failed to allocate memory");
@@ -209,8 +215,7 @@ static Eina_List *_get_genre_list(struct datamgr *dmgr)
}
gi->name = STR_GENRE_NAME;
- gi->list = dmgr->ops->get_group(dmgr->handle,
- E_GROUP_MEDIA_GENRE, NULL);
+ gi->list = genre_list;
list = NULL;
list = eina_list_append(list, gi);
@@ -270,11 +275,13 @@ static void _get_media_info(struct datamgr *dmgr, Eina_List *list,
static void _get_genre_info(struct datamgr *dmgr, Eina_List *list,
char *str, int size)
{
+ Eina_List *l;
struct group_info *gi;
int cnt;
- gi = eina_list_nth(list, 0);
- cnt = eina_list_count(gi->list);
+ cnt = 0;
+ EINA_LIST_FOREACH(list, l, gi)
+ cnt += eina_list_count(gi->list);
snprintf(str, size, "%d Genre", cnt);
}