From 49dcbbb9ed087c7823bcb70cf781e00f75a8cfec Mon Sep 17 00:00:00 2001 From: Takamichi Horikawa Date: Thu, 30 Mar 2017 21:31:45 +0900 Subject: gio: use older interface to enumerate files --- common/fmplayer_file_gio.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) (limited to 'common/fmplayer_file_gio.c') diff --git a/common/fmplayer_file_gio.c b/common/fmplayer_file_gio.c index 053e4ae..5e9dd84 100644 --- a/common/fmplayer_file_gio.c +++ b/common/fmplayer_file_gio.c @@ -79,7 +79,8 @@ void *fmplayer_fileread(const void *pathptr, const char *pcmname, const char *ex goto err; } direnum = g_file_enumerate_children(dir, - G_FILE_ATTRIBUTE_STANDARD_NAME, + G_FILE_ATTRIBUTE_STANDARD_NAME "," + G_FILE_ATTRIBUTE_STANDARD_TARGET_URI, G_FILE_QUERY_INFO_NONE, 0, 0); if (!direnum) { @@ -87,24 +88,24 @@ void *fmplayer_fileread(const void *pathptr, const char *pcmname, const char *ex goto err; } for (;;) { - GFileInfo *info; - GFile *pcmfile; - if (!g_file_enumerator_iterate(direnum, &info, &pcmfile, 0, 0)) { - if (error) *error = FMPLAYER_FILE_ERR_FILEIO; - goto err; - } - if (!info || !pcmfile) { + GFileInfo *info = g_file_enumerator_next_file(direnum, 0, 0); + if (!info) { if (error) *error = FMPLAYER_FILE_ERR_FILEIO; goto err; } + GFile *pcmfile = g_file_enumerator_get_child(direnum, info); if (!strcasecmp(g_file_info_get_name(info), pcmname)) { void *buf = fileread(pcmfile, maxsize, filesize, error); + g_object_unref(G_OBJECT(pcmfile)); + g_object_unref(G_OBJECT(info)); g_object_unref(G_OBJECT(direnum)); g_object_unref(G_OBJECT(dir)); g_object_unref(G_OBJECT(file)); free(pcmnamebuf); return buf; } + g_object_unref(G_OBJECT(pcmfile)); + g_object_unref(G_OBJECT(info)); } if (error) *error = FMPLAYER_FILE_ERR_FILEIO; err: -- cgit v1.2.3