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 @@ ...@@ -81,12 +81,19 @@
#ifdef HAVE_DYNAMIC_PLUGINS #ifdef HAVE_DYNAMIC_PLUGINS
static int CacheLoadConfig ( module_t *, FILE * ); static int CacheLoadConfig ( module_t *, FILE * );
static int CacheSaveConfig ( module_t *, FILE * ); static int CacheSaveConfig ( module_t *, FILE * );
static char * CacheName ( void );
/* Sub-version number /* Sub-version number
* (only used to avoid breakage in dev version when cache structure changes) */ * (only used to avoid breakage in dev version when cache structure changes) */
#define CACHE_SUBVERSION_NUM 3 #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 * LoadPluginsCache: loads the plugins cache file
***************************************************************************** *****************************************************************************
...@@ -113,8 +120,8 @@ void CacheLoad( vlc_object_t *p_this ) ...@@ -113,8 +120,8 @@ void CacheLoad( vlc_object_t *p_this )
return; return;
} }
if( asprintf( &psz_filename, "%s"DIR_SEP"%s", if( asprintf( &psz_filename, "%s"DIR_SEP CACHENAME_FORMAT,
psz_cachedir, CacheName() ) == -1 ) psz_cachedir, CACHENAME_VALUES ) == -1 )
{ {
free( psz_cachedir ); free( psz_cachedir );
return; return;
...@@ -495,7 +502,8 @@ void CacheSave( vlc_object_t *p_this ) ...@@ -495,7 +502,8 @@ void CacheSave( vlc_object_t *p_this )
} }
snprintf( psz_filename, sizeof( psz_filename ), 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 ); free( psz_cachedir );
msg_Dbg( p_this, "writing plugins cache %s", psz_filename ); msg_Dbg( p_this, "writing plugins cache %s", psz_filename );
...@@ -679,20 +687,6 @@ error: ...@@ -679,20 +687,6 @@ error:
return -1; 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. * 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