X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fmodules%2Fcache.c;h=4f3c34f8efa68830007d3df9df3b2425ec75d656;hb=1cfe42c98fe6b715632a447957a733b5f6d0c36f;hp=89d1a99a6d51f0a798c25fc33b2133097c058f5e;hpb=d93246d2d334a21021ab004e99dff22d601fb8ab;p=vlc diff --git a/src/modules/cache.c b/src/modules/cache.c index 89d1a99a6d..4f3c34f8ef 100644 --- a/src/modules/cache.c +++ b/src/modules/cache.c @@ -84,7 +84,7 @@ static int CacheSaveConfig ( module_t *, FILE * ); /* Sub-version number * (only used to avoid breakage in dev version when cache structure changes) */ -#define CACHE_SUBVERSION_NUM 4 +#define CACHE_SUBVERSION_NUM 5 /* Format string for the cache filename */ #define CACHENAME_FORMAT \ @@ -104,11 +104,10 @@ static int CacheSaveConfig ( module_t *, FILE * ); *****************************************************************************/ void CacheLoad( vlc_object_t *p_this, module_bank_t *p_bank, bool b_delete ) { - char *psz_filename, *psz_cachedir = config_GetCacheDir(); + char *psz_filename, *psz_cachedir = config_GetUserDir(VLC_CACHE_DIR); FILE *file; int i, j, i_size, i_read; char p_cachestring[sizeof("cache " COPYRIGHT_MESSAGE)]; - char p_cachelang[6], p_lang[6]; int i_cache; module_cache_t **pp_cache = 0; int32_t i_file_size, i_marker; @@ -208,17 +207,6 @@ void CacheLoad( vlc_object_t *p_this, module_bank_t *p_bank, bool b_delete ) return; } - /* Check the language hasn't changed */ - sprintf( p_lang, "%5.5s", _("C") ); i_size = 5; - i_read = fread( p_cachelang, 1, i_size, file ); - if( i_read != i_size || memcmp( p_cachelang, p_lang, i_size ) ) - { - msg_Warn( p_this, "This doesn't look like a valid plugins cache " - "(language changed)" ); - fclose( file ); - return; - } - /* Check header marker */ i_read = fread( &i_marker, 1, sizeof(i_marker), file ); if( i_read != sizeof(i_marker) || @@ -241,7 +229,7 @@ void CacheLoad( vlc_object_t *p_this, module_bank_t *p_bank, bool b_delete ) if( i_cache ) pp_cache = p_bank->pp_loaded_cache = - malloc( i_cache * sizeof(void *) ); + xmalloc( i_cache * sizeof(void *) ); #define LOAD_IMMEDIATE(a) \ if( fread( (void *)&a, sizeof(char), sizeof(a), file ) != sizeof(a) ) goto error @@ -252,7 +240,7 @@ void CacheLoad( vlc_object_t *p_this, module_bank_t *p_bank, bool b_delete ) || ( i_size > 16384 ) ) \ goto error; \ if( i_size ) { \ - char *psz = malloc( i_size ); \ + char *psz = xmalloc( i_size ); \ if( fread( psz, i_size, 1, file ) != 1 ) { \ free( psz ); \ goto error; \ @@ -270,7 +258,7 @@ void CacheLoad( vlc_object_t *p_this, module_bank_t *p_bank, bool b_delete ) uint16_t i_size; int i_submodules; - pp_cache[i] = malloc( sizeof(module_cache_t) ); + pp_cache[i] = xmalloc( sizeof(module_cache_t) ); p_bank->i_loaded_cache++; /* Load common info */ @@ -406,7 +394,7 @@ static int CacheLoadConfig( module_t *p_module, FILE *file ) { int j; p_module->p_config[i].ppsz_list = - malloc( (p_module->p_config[i].i_list+1) * sizeof(char *)); + xmalloc( (p_module->p_config[i].i_list+1) * sizeof(char *)); if( p_module->p_config[i].ppsz_list ) { for( j = 0; j < p_module->p_config[i].i_list; j++ ) @@ -418,7 +406,7 @@ static int CacheLoadConfig( module_t *p_module, FILE *file ) { int j; p_module->p_config[i].ppsz_list_text = - malloc( (p_module->p_config[i].i_list+1) * sizeof(char *)); + xmalloc( (p_module->p_config[i].i_list+1) * sizeof(char *)); if( p_module->p_config[i].ppsz_list_text ) { for( j = 0; j < p_module->p_config[i].i_list; j++ ) @@ -429,7 +417,7 @@ static int CacheLoadConfig( module_t *p_module, FILE *file ) if( p_module->p_config[i].pi_list ) { p_module->p_config[i].pi_list = - malloc( (p_module->p_config[i].i_list + 1) * sizeof(int) ); + xmalloc( (p_module->p_config[i].i_list + 1) * sizeof(int) ); if( p_module->p_config[i].pi_list ) { for (int j = 0; j < p_module->p_config[i].i_list; j++) @@ -441,9 +429,9 @@ static int CacheLoadConfig( module_t *p_module, FILE *file ) if( p_module->p_config[i].i_action ) { p_module->p_config[i].ppf_action = - malloc( p_module->p_config[i].i_action * sizeof(void *) ); + xmalloc( p_module->p_config[i].i_action * sizeof(void *) ); p_module->p_config[i].ppsz_action_text = - malloc( p_module->p_config[i].i_action * sizeof(char *) ); + xmalloc( p_module->p_config[i].i_action * sizeof(char *) ); for (int j = 0; j < p_module->p_config[i].i_action; j++) { @@ -475,7 +463,7 @@ void CacheSave( vlc_object_t *p_this, module_bank_t *p_bank ) "# For information about cache directory tags, see:\r\n" "# http://www.brynosaurus.com/cachedir/\r\n"; - char *psz_cachedir = config_GetCacheDir(); + char *psz_cachedir = config_GetUserDir(VLC_CACHE_DIR); FILE *file; int i, j, i_cache; module_cache_t **pp_cache; @@ -508,12 +496,7 @@ void CacheSave( vlc_object_t *p_this, module_bank_t *p_bank ) char psz_tmpname[sizeof (psz_filename) + 12]; snprintf (psz_tmpname, sizeof (psz_tmpname), "%s.%"PRIu32, psz_filename, -#ifdef UNDER_CE - (uint32_t)GetCurrentProcessId () -#else - (uint32_t)getpid () -#endif - ); + (uint32_t)getpid ()); file = utf8_fopen( psz_tmpname, "wb" ); if (file == NULL) goto error; @@ -536,10 +519,6 @@ void CacheSave( vlc_object_t *p_this, module_bank_t *p_bank ) if (fwrite (&i_file_size, sizeof (i_file_size), 1, file) != 1 ) goto error; - /* Language */ - if (fprintf (file, "%5.5s", _("C")) == EOF) - goto error; - /* Header marker */ i_file_size = ftell( file ); if (fwrite (&i_file_size, sizeof (i_file_size), 1, file) != 1)