diff options
Diffstat (limited to 'src/grid/grid_movie.c')
-rw-r--r-- | src/grid/grid_movie.c | 15 |
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); } |