]> git.sesse.net Git - vlc/commitdiff
Don't use void * for utf8_(l)?stat() as it hinders bug detection
authorRémi Denis-Courmont <rem@videolan.org>
Sun, 12 Nov 2006 12:02:55 +0000 (12:02 +0000)
committerRémi Denis-Courmont <rem@videolan.org>
Sun, 12 Nov 2006 12:02:55 +0000 (12:02 +0000)
include/charset.h
include/vlc_symbols.h
modules/access/file.c
src/misc/unicode.c

index afbd74eee0fbd494b66921015adf5e0c9b31110d..7d2102f3529222e4003f02f3147cddf38d0daaab 100644 (file)
 
 #include <stdarg.h>
 #include <sys/types.h>
+#ifdef HAVE_SYS_STAT_H
+# include <sys/stat.h>
+#else
+struct stat { };
+#endif
 
 # ifdef __cplusplus
 extern "C" {
@@ -44,8 +49,13 @@ VLC_EXPORT( FILE *, utf8_fopen, ( const char *filename, const char *mode ) );
 VLC_EXPORT( void *, utf8_opendir, ( const char *dirname ) );
 VLC_EXPORT( char *, utf8_readdir, ( void *dir ) );
 VLC_EXPORT( int, utf8_scandir, ( const char *dirname, char ***namelist, int (*select)( const char * ), int (*compar)( const char **, const char ** ) ) );
-VLC_EXPORT( int, utf8_stat, ( const char *filename, void *buf ) );
-VLC_EXPORT( int, utf8_lstat, ( const char *filename, void *buf ) );
+
+#ifdef WIN32
+# define stat _stati64
+#endif
+
+VLC_EXPORT( int, utf8_stat, ( const char *filename, struct stat *buf ) );
+VLC_EXPORT( int, utf8_lstat, ( const char *filename, struct stat *buf ) );
 VLC_EXPORT( int, utf8_mkdir, ( const char *filename ) );
 
 VLC_EXPORT( int, utf8_vfprintf, ( FILE *stream, const char *fmt, va_list ap ) );
index 1633a0c1fd8f460a431fd78e0faadea8224a0d8a..edab3e4c3e93a7f18303d8f5956cd25403b5d976 100644 (file)
@@ -469,8 +469,8 @@ struct module_symbols_t
     void * (*utf8_opendir_inner) (const char *dirname);
     FILE * (*utf8_fopen_inner) (const char *filename, const char *mode);
     char * (*utf8_readdir_inner) (void *dir);
-    int (*utf8_stat_inner) (const char *filename, void *buf);
-    int (*utf8_lstat_inner) (const char *filename, void *buf);
+    int (*utf8_stat_inner) (const char *filename, struct stat *buf);
+    int (*utf8_lstat_inner) (const char *filename, struct stat *buf);
     char * (*FromLocaleDup_inner) (const char *);
     int (*utf8_mkdir_inner) (const char *filename);
     vlm_media_t* (*vlm_MediaSearch_inner) (vlm_t *, const char *);
index 3a621f8d31d55c5610f661dc3c0ffe2f45f5ffa5..58aecfb8e91f46690c18b6f51d7691771bc91c69 100644 (file)
@@ -53,7 +53,6 @@
 #if defined( WIN32 ) && !defined( UNDER_CE )
 /* fstat() support for large files on win32 */
 #   define fstat(a,b) _fstati64(a,b)
-#   define FILESTAT _stati64 
 #   ifdef lseek
 #      undef lseek
 #   endif
@@ -68,8 +67,6 @@
 #      undef lseek
 #   endif
 #   define lseek fseek
-#else
-#   define FILESTAT stat
 #endif
 
 #include "charset.h"
@@ -169,7 +166,7 @@ static int Open( vlc_object_t *p_this )
         fd = open_file (p_access, p_access->psz_path);
 
 #ifdef HAVE_SYS_STAT_H
-    struct FILESTAT st;
+    struct stat st;
 
     while (fd != -1)
     {
@@ -302,7 +299,7 @@ static int Read( access_t *p_access, uint8_t *p_buffer, int i_len )
     if( p_access->info.i_size != 0 &&
         (p_sys->i_nb_reads % INPUT_FSTAT_NB_READS) == 0 )
     {
-        struct FILESTAT st;
+        struct stat st;
 
         if ((fstat (fd, &st) == 0)
          && (p_access->info.i_size != st.st_size))
index 6967ae05b215afa05c212c46595058faf22880d4..76f2f1d8a35f60a0db6efc274e533dfbf20678de 100644 (file)
@@ -518,7 +518,7 @@ int utf8_scandir( const char *dirname, char ***namelist,
 }
 
 
-static int utf8_statEx( const char *filename, void *buf,
+static int utf8_statEx( const char *filename, struct stat *buf,
                         vlc_bool_t deref )
 {
 #if defined (WIN32) || defined (UNDER_CE)
@@ -535,7 +535,7 @@ static int utf8_statEx( const char *filename, void *buf,
         }
         wpath[MAX_PATH] = L'\0';
 
-        return _wstati64( wpath, (struct _stati64 *)buf );
+        return _wstati64( wpath, buf );
     }
 #endif
 #ifdef HAVE_SYS_STAT_H
@@ -543,8 +543,8 @@ static int utf8_statEx( const char *filename, void *buf,
 
     if( local_name != NULL )
     {
-        int res = deref ? stat( local_name, (struct stat *)buf )
-                       : lstat( local_name, (struct stat *)buf );
+        int res = deref ? stat( local_name, buf )
+                       : lstat( local_name, buf );
         LocaleFree( local_name );
         return res;
     }
@@ -554,12 +554,12 @@ static int utf8_statEx( const char *filename, void *buf,
 }
 
 
-int utf8_stat( const char *filename, void *buf)
+int utf8_stat( const char *filename, struct stat *buf)
 {
     return utf8_statEx( filename, buf, VLC_TRUE );
 }
 
-int utf8_lstat( const char *filename, void *buf)
+int utf8_lstat( const char *filename, struct stat *buf)
 {
     return utf8_statEx( filename, buf, VLC_FALSE );
 }