Changeset 49bca36d8099e67f71606510e696b3e48553f1ac
- Timestamp:
- 10/11/06 22:50:39
(2 years ago)
- Author:
- Rémi Denis-Courmont <rem@videolan.org>
- git-committer:
- Rémi Denis-Courmont <rem@videolan.org> 1163195439 +0000
- git-parent:
[e1e9924a9a130bed2a614fa32b437a84474181bb]
- git-author:
- Rémi Denis-Courmont <rem@videolan.org> 1163195439 +0000
- Message:
Use free() instead of LocaleFree?() for utf8_readdir() result
-
Files:
-
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
| r29daf1b |
r49bca36 |
|
| 41 | 41 | VLC_EXPORT( FILE *, utf8_fopen, ( const char *filename, const char *mode ) ); |
|---|
| 42 | 42 | VLC_EXPORT( void *, utf8_opendir, ( const char *dirname ) ); |
|---|
| 43 | | VLC_EXPORT( const char *, utf8_readdir, ( void *dir ) ); |
|---|
| | 43 | VLC_EXPORT( char *, utf8_readdir, ( void *dir ) ); |
|---|
| 44 | 44 | VLC_EXPORT( int, utf8_scandir, ( const char *dirname, char ***namelist, int (*select)( const char * ), int (*compar)( const char **, const char ** ) ) ); |
|---|
| 45 | 45 | VLC_EXPORT( int, utf8_stat, ( const char *filename, void *buf ) ); |
|---|
| r717e0b6 |
r49bca36 |
|
| 469 | 469 | void * (*utf8_opendir_inner) (const char *dirname); |
|---|
| 470 | 470 | FILE * (*utf8_fopen_inner) (const char *filename, const char *mode); |
|---|
| 471 | | const char * (*utf8_readdir_inner) (void *dir); |
|---|
| | 471 | char * (*utf8_readdir_inner) (void *dir); |
|---|
| 472 | 472 | int (*utf8_stat_inner) (const char *filename, void *buf); |
|---|
| 473 | 473 | int (*utf8_lstat_inner) (const char *filename, void *buf); |
|---|
| r857b51f |
r49bca36 |
|
| 207 | 207 | |
|---|
| 208 | 208 | sprintf( dir, "%s%c%s", psz_dir, sep, psz_filename ); |
|---|
| 209 | | LocaleFree( psz_filename ); |
|---|
| | 209 | free( psz_filename ); |
|---|
| 210 | 210 | |
|---|
| 211 | 211 | if( E_(ParseDirectory)( p_intf, psz_root, dir ) ) |
|---|
| rb527c3f |
r49bca36 |
|
| 1946 | 1946 | strcmp( psz_entry, ".." ) ) |
|---|
| 1947 | 1947 | { |
|---|
| 1948 | | LocaleFree( psz_entry ); |
|---|
| | 1948 | free( psz_entry ); |
|---|
| 1949 | 1949 | psz_entry = utf8_readdir( p_current_dir ); |
|---|
| 1950 | 1950 | continue; |
|---|
| … | … | |
| 1983 | 1983 | |
|---|
| 1984 | 1984 | free( psz_uri ); |
|---|
| 1985 | | LocaleFree( psz_entry ); |
|---|
| | 1985 | free( psz_entry ); |
|---|
| 1986 | 1986 | /* Read next entry */ |
|---|
| 1987 | 1987 | psz_entry = utf8_readdir( p_current_dir ); |
|---|
| r9185417 |
r49bca36 |
|
| 505 | 505 | int check; |
|---|
| 506 | 506 | |
|---|
| 507 | | if( ( strcmp( ".", psz_dirent ) == 0 ) |
|---|
| | 507 | if( (psz_dirent == NULL) |
|---|
| | 508 | || ( strcmp( ".", psz_dirent ) == 0 ) |
|---|
| 508 | 509 | || ( strcmp( "..", psz_dirent ) == 0 ) ) |
|---|
| 509 | 510 | continue; |
|---|
| 510 | 511 | |
|---|
| 511 | | check = asprintf( &psz_filename, "%s/%s", psz_dirname, |
|---|
| 512 | | psz_dirent ); |
|---|
| 513 | | LocaleFree( psz_dirent ); |
|---|
| | 512 | check = asprintf( &psz_filename, "%s/%s", psz_dirname, psz_dirent ); |
|---|
| | 513 | free( psz_dirent ); |
|---|
| 514 | 514 | if( check == -1 ) |
|---|
| 515 | 515 | continue; |
|---|
| r29daf1b |
r49bca36 |
|
| 471 | 471 | } |
|---|
| 472 | 472 | |
|---|
| 473 | | const char *utf8_readdir( void *dir ) |
|---|
| | 473 | |
|---|
| | 474 | #define darwin_readdir_fix( a ) __vlc_fix_readdir_charset (NULL, a) |
|---|
| | 475 | |
|---|
| | 476 | char *utf8_readdir( void *dir ) |
|---|
| 474 | 477 | { |
|---|
| 475 | 478 | struct dirent *ent; |
|---|
| … | … | |
| 479 | 482 | return NULL; |
|---|
| 480 | 483 | |
|---|
| 481 | | return FromLocale( ent->d_name ); |
|---|
| | 484 | #ifdef __APPLE__ |
|---|
| | 485 | return darwin_readdir_fix( ent->d_name ); |
|---|
| | 486 | #else |
|---|
| | 487 | return strdup( ent->d_name ); |
|---|
| | 488 | #endif |
|---|
| 482 | 489 | } |
|---|
| 483 | 490 | |
|---|
| … | … | |
| 508 | 515 | { |
|---|
| 509 | 516 | char **newtab; |
|---|
| 510 | | char *utf_entry = strdup( entry ); |
|---|
| 511 | | LocaleFree( entry ); |
|---|
| 512 | | if( utf_entry == NULL ) |
|---|
| 513 | | goto error; |
|---|
| 514 | | |
|---|
| 515 | | if( !select( utf_entry ) ) |
|---|
| | 517 | |
|---|
| | 518 | if( !select( entry ) ) |
|---|
| 516 | 519 | { |
|---|
| 517 | | free( utf_entry ); |
|---|
| | 520 | free( entry ); |
|---|
| 518 | 521 | continue; |
|---|
| 519 | 522 | } |
|---|
| … | … | |
| 522 | 525 | if( newtab == NULL ) |
|---|
| 523 | 526 | { |
|---|
| 524 | | free( utf_entry ); |
|---|
| | 527 | free( entry ); |
|---|
| 525 | 528 | goto error; |
|---|
| 526 | 529 | } |
|---|
| 527 | 530 | tab = newtab; |
|---|
| 528 | | tab[num++] = utf_entry; |
|---|
| | 531 | tab[num++] = entry; |
|---|
| 529 | 532 | } |
|---|
| 530 | 533 | vlc_closedir_wrapper( dir ); |
|---|