mirror of
https://github.com/FWGS/xash3d-fwgs
synced 2024-11-28 04:51:25 +01:00
engine: cleanup XASH_64BIT usage. Always use it from build.h
This commit is contained in:
parent
40ffde0439
commit
128a1f59a9
3
.gitignore
vendored
3
.gitignore
vendored
@ -342,3 +342,6 @@ enc_temp_folder/
|
|||||||
|
|
||||||
# KDevelop4
|
# KDevelop4
|
||||||
*.kdev4
|
*.kdev4
|
||||||
|
|
||||||
|
# ccls langauge server
|
||||||
|
.ccls-*
|
||||||
|
@ -26,7 +26,8 @@
|
|||||||
* SUCH DAMAGE.
|
* SUCH DAMAGE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#if defined __ANDROID__ && !defined XASH_64BIT
|
#include "build.h"
|
||||||
|
#if XASH_ANDROID && !XASH_64BIT
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <android/log.h>
|
#include <android/log.h>
|
||||||
#include "linker.h"
|
#include "linker.h"
|
||||||
@ -102,4 +103,4 @@ void *dlsym_weak( void *handle, const char *symbol )
|
|||||||
__android_log_print( ANDROID_LOG_ERROR, "dlsym-weak", "Failed when looking up %s\n", symbol );
|
__android_log_print( ANDROID_LOG_ERROR, "dlsym-weak", "Failed when looking up %s\n", symbol );
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
#endif
|
#endif // XASH_ANDROID && !XASH_64BIT
|
||||||
|
@ -674,7 +674,7 @@ static void VID_SetWindowIcon( SDL_Window *hWnd )
|
|||||||
if( ico && WIN_SetWindowIcon( ico ))
|
if( ico && WIN_SetWindowIcon( ico ))
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
#endif // _WIN32 && !XASH_64BIT
|
#endif // XASH_WIN32
|
||||||
|
|
||||||
Q_strncpy( iconpath, GI->iconpath, sizeof( iconpath ));
|
Q_strncpy( iconpath, GI->iconpath, sizeof( iconpath ));
|
||||||
COM_ReplaceExtension( iconpath, ".tga", sizeof( iconpath ));
|
COM_ReplaceExtension( iconpath, ".tga", sizeof( iconpath ));
|
||||||
|
@ -2985,24 +2985,22 @@ static void *GAME_EXPORT pfnPvEntPrivateData( edict_t *pEdict )
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#ifdef XASH_64BIT
|
|
||||||
static struct str64_s
|
static struct str64_s
|
||||||
{
|
{
|
||||||
size_t maxstringarray;
|
size_t maxstringarray;
|
||||||
qboolean allowdup;
|
qboolean allowdup;
|
||||||
|
qboolean dynamic;
|
||||||
char *staticstringarray;
|
char *staticstringarray;
|
||||||
char *pstringarray;
|
char *pstringarray;
|
||||||
char *pstringarraystatic;
|
char *pstringarraystatic;
|
||||||
char *pstringbase;
|
char *pstringbase;
|
||||||
char *poldstringbase;
|
char *poldstringbase;
|
||||||
char *plast;
|
char *plast;
|
||||||
qboolean dynamic;
|
|
||||||
size_t maxalloc;
|
size_t maxalloc;
|
||||||
size_t numdups;
|
size_t numdups;
|
||||||
size_t numoverflows;
|
size_t numoverflows;
|
||||||
size_t totalalloc;
|
size_t totalalloc;
|
||||||
} str64;
|
} str64;
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
==================
|
==================
|
||||||
@ -3013,7 +3011,7 @@ Free strings on server stop. Reset string pointer on 64 bits
|
|||||||
*/
|
*/
|
||||||
void SV_EmptyStringPool( void )
|
void SV_EmptyStringPool( void )
|
||||||
{
|
{
|
||||||
#ifdef XASH_64BIT
|
#if XASH_64BIT
|
||||||
if( str64.dynamic ) // switch only after array fill (more space for multiplayer games)
|
if( str64.dynamic ) // switch only after array fill (more space for multiplayer games)
|
||||||
str64.pstringbase = str64.pstringarray;
|
str64.pstringbase = str64.pstringarray;
|
||||||
else
|
else
|
||||||
@ -3021,9 +3019,9 @@ void SV_EmptyStringPool( void )
|
|||||||
str64.pstringbase = str64.poldstringbase = str64.pstringarraystatic;
|
str64.pstringbase = str64.poldstringbase = str64.pstringarraystatic;
|
||||||
str64.plast = str64.pstringbase + 1;
|
str64.plast = str64.pstringbase + 1;
|
||||||
}
|
}
|
||||||
#else
|
#else // !XASH_64BIT
|
||||||
Mem_EmptyPool( svgame.stringspool );
|
Mem_EmptyPool( svgame.stringspool );
|
||||||
#endif
|
#endif // !XASH_64BIT
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -3037,7 +3035,7 @@ this helps not to lose strings that belongs to static game part
|
|||||||
*/
|
*/
|
||||||
void SV_SetStringArrayMode( qboolean dynamic )
|
void SV_SetStringArrayMode( qboolean dynamic )
|
||||||
{
|
{
|
||||||
#ifdef XASH_64BIT
|
#if XASH_64BIT
|
||||||
Con_Reportf( "%s(%d) %d\n", __func__, dynamic, str64.dynamic );
|
Con_Reportf( "%s(%d) %d\n", __func__, dynamic, str64.dynamic );
|
||||||
|
|
||||||
if( dynamic == str64.dynamic )
|
if( dynamic == str64.dynamic )
|
||||||
@ -3046,11 +3044,11 @@ void SV_SetStringArrayMode( qboolean dynamic )
|
|||||||
str64.dynamic = dynamic;
|
str64.dynamic = dynamic;
|
||||||
|
|
||||||
SV_EmptyStringPool();
|
SV_EmptyStringPool();
|
||||||
#endif
|
#endif // !XASH_64BIT
|
||||||
}
|
}
|
||||||
|
|
||||||
#if XASH_AMD64 && XASH_LINUX && !XASH_ANDROID
|
#if XASH_AMD64 && XASH_LINUX && !XASH_ANDROID
|
||||||
#define USE_MMAP
|
#define USE_MMAP 1
|
||||||
#include <sys/mman.h>
|
#include <sys/mman.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -3066,7 +3064,7 @@ this case need patched game dll with MAKE_STRING checking ptrdiff size
|
|||||||
*/
|
*/
|
||||||
static void SV_AllocStringPool( void )
|
static void SV_AllocStringPool( void )
|
||||||
{
|
{
|
||||||
#ifdef XASH_64BIT
|
#if XASH_64BIT
|
||||||
void *ptr = NULL;
|
void *ptr = NULL;
|
||||||
string lenstr;
|
string lenstr;
|
||||||
|
|
||||||
@ -3081,7 +3079,7 @@ static void SV_AllocStringPool( void )
|
|||||||
if( Sys_CheckParm( "-str64dup" ) )
|
if( Sys_CheckParm( "-str64dup" ) )
|
||||||
str64.allowdup = true;
|
str64.allowdup = true;
|
||||||
|
|
||||||
#ifdef USE_MMAP
|
#if USE_MMAP
|
||||||
{
|
{
|
||||||
uint flags;
|
uint flags;
|
||||||
size_t pagesize = sysconf( _SC_PAGESIZE );
|
size_t pagesize = sysconf( _SC_PAGESIZE );
|
||||||
@ -3135,35 +3133,37 @@ static void SV_AllocStringPool( void )
|
|||||||
ptr = str64.staticstringarray = Mem_Calloc( host.mempool, str64.maxstringarray * 2 );
|
ptr = str64.staticstringarray = Mem_Calloc( host.mempool, str64.maxstringarray * 2 );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#else
|
#else // !USE_MMAP
|
||||||
ptr = str64.staticstringarray = Mem_Calloc( host.mempool, str64.maxstringarray * 2 );
|
ptr = str64.staticstringarray = Mem_Calloc( host.mempool, str64.maxstringarray * 2 );
|
||||||
#endif
|
#endif // !USE_MMAP
|
||||||
|
|
||||||
str64.pstringarray = ptr;
|
str64.pstringarray = ptr;
|
||||||
str64.pstringarraystatic = (byte*)ptr + str64.maxstringarray;
|
str64.pstringarraystatic = (byte*)ptr + str64.maxstringarray;
|
||||||
str64.pstringbase = str64.poldstringbase = ptr;
|
str64.pstringbase = str64.poldstringbase = ptr;
|
||||||
str64.plast = (byte*)ptr + 1;
|
str64.plast = (byte*)ptr + 1;
|
||||||
svgame.globals->pStringBase = ptr;
|
svgame.globals->pStringBase = ptr;
|
||||||
#else
|
#else // !XASH_64BIT
|
||||||
svgame.stringspool = Mem_AllocPool( "Server Strings" );
|
svgame.stringspool = Mem_AllocPool( "Server Strings" );
|
||||||
svgame.globals->pStringBase = "";
|
svgame.globals->pStringBase = "";
|
||||||
#endif
|
#endif // !XASH_64BIT
|
||||||
}
|
}
|
||||||
|
|
||||||
static void SV_FreeStringPool( void )
|
static void SV_FreeStringPool( void )
|
||||||
{
|
{
|
||||||
#ifdef XASH_64BIT
|
#if XASH_64BIT
|
||||||
Con_Reportf( "%s()\n", __func__ );
|
Con_Reportf( "%s()\n", __func__ );
|
||||||
|
|
||||||
#ifdef USE_MMAP
|
#if USE_MMAP
|
||||||
if( str64.pstringarray != str64.staticstringarray )
|
if( str64.pstringarray != str64.staticstringarray )
|
||||||
munmap( str64.pstringarray, (str64.maxstringarray * 2) & ~(sysconf( _SC_PAGESIZE ) - 1) );
|
munmap( str64.pstringarray, (str64.maxstringarray * 2) & ~(sysconf( _SC_PAGESIZE ) - 1) );
|
||||||
else
|
else
|
||||||
#endif
|
#endif // USE_MMAP
|
||||||
|
{
|
||||||
Mem_Free( str64.staticstringarray );
|
Mem_Free( str64.staticstringarray );
|
||||||
#else
|
}
|
||||||
|
#else // !XASH_64BIT
|
||||||
Mem_FreePool( &svgame.stringspool );
|
Mem_FreePool( &svgame.stringspool );
|
||||||
#endif
|
#endif // !XASH_64BIT
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -3234,9 +3234,7 @@ string_t GAME_EXPORT SV_AllocString( const char *szValue )
|
|||||||
{
|
{
|
||||||
char *newString = NULL;
|
char *newString = NULL;
|
||||||
uint len;
|
uint len;
|
||||||
#ifdef XASH_64BIT
|
|
||||||
int cmp;
|
int cmp;
|
||||||
#endif
|
|
||||||
|
|
||||||
if( svgame.physFuncs.pfnAllocString != NULL )
|
if( svgame.physFuncs.pfnAllocString != NULL )
|
||||||
{
|
{
|
||||||
@ -3252,7 +3250,7 @@ string_t GAME_EXPORT SV_AllocString( const char *szValue )
|
|||||||
return i;
|
return i;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef XASH_64BIT
|
#if XASH_64BIT
|
||||||
cmp = 1;
|
cmp = 1;
|
||||||
|
|
||||||
if( !str64.allowdup )
|
if( !str64.allowdup )
|
||||||
@ -3290,18 +3288,18 @@ string_t GAME_EXPORT SV_AllocString( const char *szValue )
|
|||||||
str64.maxalloc = newString - str64.pstringarray;
|
str64.maxalloc = newString - str64.pstringarray;
|
||||||
|
|
||||||
return newString - svgame.globals->pStringBase;
|
return newString - svgame.globals->pStringBase;
|
||||||
#else
|
#else // !XASH_64BIT
|
||||||
len = SV_ProcessString( NULL, szValue );
|
len = SV_ProcessString( NULL, szValue );
|
||||||
newString = Mem_Malloc( svgame.stringspool, len );
|
newString = Mem_Malloc( svgame.stringspool, len );
|
||||||
SV_ProcessString( newString, szValue );
|
SV_ProcessString( newString, szValue );
|
||||||
|
|
||||||
return newString - svgame.globals->pStringBase;
|
return newString - svgame.globals->pStringBase;
|
||||||
#endif
|
#endif // !XASH_64BIT
|
||||||
}
|
}
|
||||||
|
|
||||||
void SV_PrintStr64Stats_f( void )
|
void SV_PrintStr64Stats_f( void )
|
||||||
{
|
{
|
||||||
#ifdef XASH_64BIT
|
#if XASH_64BIT
|
||||||
Con_Printf( "====================\n" );
|
Con_Printf( "====================\n" );
|
||||||
Con_Printf( "64 bit string pool statistics\n" );
|
Con_Printf( "64 bit string pool statistics\n" );
|
||||||
Con_Printf( "====================\n" );
|
Con_Printf( "====================\n" );
|
||||||
@ -3310,9 +3308,9 @@ void SV_PrintStr64Stats_f( void )
|
|||||||
Con_Printf( "maximum array usage: %lu\n", str64.maxalloc );
|
Con_Printf( "maximum array usage: %lu\n", str64.maxalloc );
|
||||||
Con_Printf( "overflow counter: %lu\n", str64.numoverflows );
|
Con_Printf( "overflow counter: %lu\n", str64.numoverflows );
|
||||||
Con_Printf( "dup string counter: %lu\n", str64.numdups );
|
Con_Printf( "dup string counter: %lu\n", str64.numdups );
|
||||||
#else
|
#else // !XASH_64BIT
|
||||||
Con_Printf( "Not implemented\n" );
|
Con_Printf( "Not implemented\n" );
|
||||||
#endif
|
#endif // !XASH_64BIT
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -3326,7 +3324,7 @@ string_t SV_MakeString( const char *szValue )
|
|||||||
{
|
{
|
||||||
if( svgame.physFuncs.pfnMakeString != NULL )
|
if( svgame.physFuncs.pfnMakeString != NULL )
|
||||||
return svgame.physFuncs.pfnMakeString( szValue );
|
return svgame.physFuncs.pfnMakeString( szValue );
|
||||||
#ifdef XASH_64BIT
|
#if XASH_64BIT
|
||||||
{
|
{
|
||||||
long long ptrdiff = szValue - svgame.globals->pStringBase;
|
long long ptrdiff = szValue - svgame.globals->pStringBase;
|
||||||
if( ptrdiff > INT_MAX || ptrdiff < INT_MIN )
|
if( ptrdiff > INT_MAX || ptrdiff < INT_MIN )
|
||||||
@ -3334,9 +3332,9 @@ string_t SV_MakeString( const char *szValue )
|
|||||||
else
|
else
|
||||||
return (int)ptrdiff;
|
return (int)ptrdiff;
|
||||||
}
|
}
|
||||||
#else
|
#else // !XASH_64BIT
|
||||||
return szValue - svgame.globals->pStringBase;
|
return szValue - svgame.globals->pStringBase;
|
||||||
#endif
|
#endif // !XASH_64BIT
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -128,7 +128,6 @@ def configure(conf):
|
|||||||
conf.define_cond('XASH_ENABLE_MAIN', conf.env.DISABLE_LAUNCHER)
|
conf.define_cond('XASH_ENABLE_MAIN', conf.env.DISABLE_LAUNCHER)
|
||||||
conf.define_cond('XASH_NO_ASYNC_NS_RESOLVE', conf.options.NO_ASYNC_RESOLVE)
|
conf.define_cond('XASH_NO_ASYNC_NS_RESOLVE', conf.options.NO_ASYNC_RESOLVE)
|
||||||
conf.define_cond('SUPPORT_BSP2_FORMAT', conf.options.SUPPORT_BSP2_FORMAT)
|
conf.define_cond('SUPPORT_BSP2_FORMAT', conf.options.SUPPORT_BSP2_FORMAT)
|
||||||
conf.define_cond('XASH_64BIT', conf.env.DEST_SIZEOF_VOID_P != 4)
|
|
||||||
conf.define_cond('DBGHELP', conf.env.DEST_OS == 'win32')
|
conf.define_cond('DBGHELP', conf.env.DEST_OS == 'win32')
|
||||||
conf.define_cond('PSAPI_VERSION', conf.env.DEST_OS == 'win32') # will be defined as 1
|
conf.define_cond('PSAPI_VERSION', conf.env.DEST_OS == 'win32') # will be defined as 1
|
||||||
|
|
||||||
|
@ -247,6 +247,10 @@ Then you can use another oneliner to query all variables:
|
|||||||
#error "Place your architecture name here! If this is a mistake, try to fix conditions above and report a bug"
|
#error "Place your architecture name here! If this is a mistake, try to fix conditions above and report a bug"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if !XASH_64BIT && ( defined( __LP64__ ) || defined( _LP64 ))
|
||||||
|
#define XASH_64BIT 1
|
||||||
|
#endif
|
||||||
|
|
||||||
#if XASH_ARM == 8
|
#if XASH_ARM == 8
|
||||||
#define XASH_ARMv8 1
|
#define XASH_ARMv8 1
|
||||||
#elif XASH_ARM == 7
|
#elif XASH_ARM == 7
|
||||||
|
Loading…
Reference in New Issue
Block a user