Commit 000bc0c4 authored by Rémi Denis-Courmont's avatar Rémi Denis-Courmont

CacheName: inline and thread-safe

(cherry picked from commit 674c2927)
parent 97035686
......@@ -81,12 +81,19 @@
#ifdef HAVE_DYNAMIC_PLUGINS
static int CacheLoadConfig ( module_t *, FILE * );
static int CacheSaveConfig ( module_t *, FILE * );
static char * CacheName ( void );
/* Sub-version number
* (only used to avoid breakage in dev version when cache structure changes) */
#define CACHE_SUBVERSION_NUM 3
/* Format string for the cache filename */
#define CACHENAME_FORMAT \
"plugins-%.2zx%.2zx%.2"PRIx8".dat"
/* Magic for the cache filename */
#define CACHENAME_VALUES \
sizeof(int), sizeof(void *), *(uint8_t *)&(uint16_t){ 0xbe1e }
/*****************************************************************************
* LoadPluginsCache: loads the plugins cache file
*****************************************************************************
......@@ -113,8 +120,8 @@ void CacheLoad( vlc_object_t *p_this )
return;
}
if( asprintf( &psz_filename, "%s"DIR_SEP"%s",
psz_cachedir, CacheName() ) == -1 )
if( asprintf( &psz_filename, "%s"DIR_SEP CACHENAME_FORMAT,
psz_cachedir, CACHENAME_VALUES ) == -1 )
{
free( psz_cachedir );
return;
......@@ -495,7 +502,8 @@ void CacheSave( vlc_object_t *p_this )
}
snprintf( psz_filename, sizeof( psz_filename ),
"%s"DIR_SEP"%s", psz_cachedir, CacheName() );
"%s"DIR_SEP CACHENAME_FORMAT, psz_cachedir,
CACHENAME_VALUES );
free( psz_cachedir );
msg_Dbg( p_this, "writing plugins cache %s", psz_filename );
......@@ -679,20 +687,6 @@ error:
return -1;
}
/*****************************************************************************
* CacheName: Return the cache file name for this platform.
*****************************************************************************/
static char *CacheName( void )
{
static char psz_cachename[32];
/* Code int size, pointer size and endianness in the filename */
int32_t x = 0xbe00001e;
sprintf( psz_cachename, "plugins-%.2x%.2x%.2x.dat", (int)sizeof(int),
(int)sizeof(void *), (unsigned int)((unsigned char *)&x)[0] );
return psz_cachename;
}
/*****************************************************************************
* CacheMerge: Merge a cache module descriptor with a full module descriptor.
*****************************************************************************/
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment