]> git.sesse.net Git - vlc/blobdiff - modules/meta_engine/folder.c
meta_folder: fix a memleak.
[vlc] / modules / meta_engine / folder.c
index 9c30d3ecf89c380548a28694bb310f964a34e0a4..a607a77063b6b6539f123531206cf4ea90d75df8 100644 (file)
 
 #include <vlc_common.h>
 #include <vlc_plugin.h>
-#include <vlc_playlist.h>
 #include <vlc_art_finder.h>
 #include <vlc_fs.h>
 #include <vlc_url.h>
+#include <vlc_input_item.h>
 
 #ifdef HAVE_SYS_STAT_H
 #   include <sys/stat.h>
@@ -90,20 +90,12 @@ static int FindMeta( vlc_object_t *p_this )
     if( !psz_dir )
         return VLC_EGENERIC;
 
-    char *psz_path = psz_dir;
-    if( strncmp( psz_path, "file://", 7 ) || !decode_URI( psz_path + 7 ) )
-    {
-        free( psz_dir );
+    char *psz_path = make_path( psz_dir );
+    free( psz_dir );
+    if( psz_path == NULL )
         return VLC_EGENERIC;
-    }
 
-#if defined(WIN32) && !defined(UNDER_CE)
-    psz_path += 8;
-#else
-    psz_path += 7;
-#endif
-
-    char *psz_buf = strrchr( psz_path, '/' );
+    char *psz_buf = strrchr( psz_path, DIR_SEP_CHAR );
     if( psz_buf )
         *++psz_buf = '\0';
     else
@@ -133,8 +125,7 @@ static int FindMeta( vlc_object_t *p_this )
             }
         }
     }
-
-    free( psz_dir );
+    free( psz_path );
 
     return b_have_art ? VLC_SUCCESS : VLC_EGENERIC;
 }