X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;f=progsvm.h;h=41640fc42910c913408ca9c51904f8de98817234;hb=1d8da66c6d6e2f48017b9020125538d3bfa74814;hp=e5dd2d00d5b0979c55030f84c03526bb09000b11;hpb=02b8f1e24bce4b4a9b641b7dd97d134a9ff9a6c4;p=xonotic%2Fdarkplaces.git diff --git a/progsvm.h b/progsvm.h index e5dd2d00..41640fc4 100644 --- a/progsvm.h +++ b/progsvm.h @@ -67,6 +67,8 @@ typedef struct prvm_edict_private_s { qboolean free; float freetime; + int mark; + const char *allocation_origin; } prvm_edict_private_t; typedef struct prvm_edict_s @@ -126,7 +128,8 @@ typedef struct prvm_prog_fieldoffsets_s { // server and client use a lot of similar fields, so this is combined int SendEntity; // ssqc - int Version; // ssqc + int SendFlags; // ssqc + int Version; // ssqc (legacy) int alpha; // ssqc / csqc int ammo_cells1; // ssqc - Dissolution of Eternity mission pack int ammo_lava_nails; // ssqc - Dissolution of Eternity mission pack @@ -192,8 +195,9 @@ typedef struct prvm_prog_fieldoffsets_s int message; // csqc int modelflags; // ssqc int movement; // ssqc - int nextthink; // common - used by OP_STATE + int movetypesteplandevent; // ssqc int netaddress; // ssqc + int nextthink; // common - used by OP_STATE int nodrawtoclient; // ssqc int pflags; // ssqc int ping; // ssqc @@ -214,6 +218,7 @@ typedef struct prvm_prog_fieldoffsets_s int viewzoom; // ssqc int yaw_speed; // ssqc / csqc int clientcamera; // ssqc + int clientstatus; // ssqc } prvm_prog_fieldoffsets_t; @@ -249,6 +254,8 @@ typedef struct prvm_prog_globaloffsets_s int dmg_origin; // csqc int sb_showscores; // csqc int drawfont; // csqc / menu + int require_spawnfunc_prefix; // ssqc + int worldstatus; // ssqc } prvm_prog_globaloffsets_t; @@ -295,6 +302,7 @@ typedef struct prvm_stringbuffer_s int max_strings; int num_strings; char **strings; + const char *origin; } prvm_stringbuffer_t; @@ -330,6 +338,7 @@ typedef struct prvm_prog_s int firstfreeknownstring; const char **knownstrings; unsigned char *knownstrings_freeable; + const char **knownstrings_origin; const char ***stringshash; memexpandablearray_t stringbuffersarray; @@ -363,7 +372,9 @@ typedef struct prvm_prog_s // until this point everything also exists (with the pr_ prefix) in the old vm qfile_t *openfiles[PRVM_MAX_OPENFILES]; + const char * openfiles_origin[PRVM_MAX_OPENFILES]; fssearch_t *opensearches[PRVM_MAX_OPENSEARCHES]; + const char * opensearches_origin[PRVM_MAX_OPENSEARCHES]; struct clgecko_s *opengeckoinstances[PRVM_MAX_GECKOINSTANCES]; // copies of some vars that were former read from sv @@ -403,6 +414,7 @@ typedef struct prvm_prog_s // used to indicate whether a prog is loaded qboolean loaded; + qboolean leaktest_active; // prvm_builtin_mem_t *mem_list; @@ -489,6 +501,8 @@ void PRVM_PrintFunction_f (void); void PRVM_PrintState(void); void PRVM_CrashAll (void); void PRVM_Crash (void); +void PRVM_ShortStackTrace(char *buf, size_t bufsize); +const char *PRVM_AllocationOrigin(); ddef_t *PRVM_ED_FindField(const char *name); ddef_t *PRVM_ED_FindGlobal(const char *name); @@ -516,8 +530,8 @@ void PRVM_ED_ParseGlobals (const char *data); void PRVM_ED_LoadFromFile (const char *data); -unsigned PRVM_EDICT_NUM_ERROR(int n, char *filename, int fileline); -#define PRVM_EDICT(n) (((unsigned)(n) < (unsigned int)prog->max_edicts) ? n : PRVM_EDICT_NUM_ERROR(n, __FILE__, __LINE__)) +unsigned int PRVM_EDICT_NUM_ERROR(unsigned int n, char *filename, int fileline); +#define PRVM_EDICT(n) (((unsigned)(n) < (unsigned int)prog->max_edicts) ? (unsigned int)(n) : PRVM_EDICT_NUM_ERROR((unsigned int)(n), __FILE__, __LINE__)) #define PRVM_EDICT_NUM(n) (prog->edicts + PRVM_EDICT(n)) //int NUM_FOR_EDICT_ERROR(prvm_edict_t *e);