mirror of
https://git.code.sf.net/p/quake/quakeforge
synced 2025-03-21 18:01:15 +00:00
other than floats, progs should now be int size safe
This commit is contained in:
parent
6ca2a6da05
commit
38254186da
11 changed files with 156 additions and 144 deletions
|
@ -23,9 +23,13 @@
|
|||
|
||||
#include "QF/qtypes.h"
|
||||
|
||||
typedef int func_t;
|
||||
typedef int string_t;
|
||||
typedef int pointer_t;
|
||||
typedef int32_t func_t;
|
||||
typedef int32_t string_t;
|
||||
typedef int32_t pointer_t;
|
||||
typedef int16_t pr_short_t;
|
||||
typedef uint16_t pr_ushort_t;
|
||||
typedef int32_t pr_int_t;
|
||||
typedef uint32_t pr_uint_t;
|
||||
|
||||
typedef enum {
|
||||
ev_void,
|
||||
|
@ -329,19 +333,19 @@ typedef struct opcode_s {
|
|||
} opcode_t;
|
||||
|
||||
extern opcode_t pr_opcodes[];
|
||||
opcode_t *PR_Opcode (short opcode);
|
||||
opcode_t *PR_Opcode (pr_short_t opcode);
|
||||
void PR_Opcode_Init (void);
|
||||
|
||||
typedef struct statement_s {
|
||||
pr_opcode_e op:16;
|
||||
unsigned short a,b,c;
|
||||
pr_opcode_e op:16;
|
||||
pr_ushort_t a,b,c;
|
||||
} dstatement_t;
|
||||
|
||||
typedef struct ddef_s {
|
||||
unsigned short type; // if DEF_SAVEGLOBGAL bit is set
|
||||
pr_ushort_t type; // if DEF_SAVEGLOBGAL bit is set
|
||||
// the variable needs to be saved in savegames
|
||||
unsigned short ofs;
|
||||
int s_name;
|
||||
pr_ushort_t ofs;
|
||||
pr_int_t s_name;
|
||||
} ddef_t;
|
||||
|
||||
#define DEF_SAVEGLOBAL (1<<15)
|
||||
|
@ -349,62 +353,62 @@ typedef struct ddef_s {
|
|||
#define MAX_PARMS 8
|
||||
|
||||
typedef struct dfunction_s {
|
||||
int first_statement; // negative numbers are builtins
|
||||
int parm_start;
|
||||
int locals; // total ints of parms + locals
|
||||
pr_int_t first_statement; // negative numbers are builtins
|
||||
pr_int_t parm_start;
|
||||
pr_int_t locals; // total ints of parms + locals
|
||||
|
||||
int profile; // runtime
|
||||
pr_int_t profile; // runtime
|
||||
|
||||
int s_name;
|
||||
int s_file; // source file defined in
|
||||
pr_int_t s_name;
|
||||
pr_int_t s_file; // source file defined in
|
||||
|
||||
int numparms;
|
||||
byte parm_size[MAX_PARMS];
|
||||
pr_int_t numparms;
|
||||
uint8_t parm_size[MAX_PARMS];
|
||||
} dfunction_t;
|
||||
|
||||
typedef union pr_type_u {
|
||||
float float_var;
|
||||
string_t string_var;
|
||||
func_t func_var;
|
||||
int entity_var;
|
||||
float vector_var[1]; // really 3, but this structure must be 32 bits
|
||||
float quat_var[1]; // really 4, but this structure must be 32 bits
|
||||
int integer_var;
|
||||
pointer_t pointer_var;
|
||||
unsigned int uinteger_var;
|
||||
float float_var;
|
||||
string_t string_var;
|
||||
func_t func_var;
|
||||
pr_int_t entity_var;
|
||||
float vector_var[1]; // really 3, but this structure must be 32 bits
|
||||
float quat_var[1]; // really 4, but this structure must be 32 bits
|
||||
pr_int_t integer_var;
|
||||
pointer_t pointer_var;
|
||||
pr_uint_t uinteger_var;
|
||||
} pr_type_t;
|
||||
|
||||
typedef struct pr_va_list_s {
|
||||
int count;
|
||||
pointer_t list; // pr_type_t
|
||||
pr_int_t count;
|
||||
pointer_t list; // pr_type_t
|
||||
} pr_va_list_t;
|
||||
|
||||
#define PROG_ID_VERSION 6
|
||||
#define PROG_VERSION 0x00fff005 // MMmmmRRR 0.fff.005 (hex)
|
||||
|
||||
typedef struct dprograms_s {
|
||||
unsigned int version;
|
||||
unsigned int crc; // check of header file
|
||||
pr_uint_t version;
|
||||
pr_uint_t crc; // check of header file
|
||||
|
||||
unsigned int ofs_statements;
|
||||
unsigned int numstatements; // statement 0 is an error
|
||||
pr_uint_t ofs_statements;
|
||||
pr_uint_t numstatements; // statement 0 is an error
|
||||
|
||||
unsigned int ofs_globaldefs;
|
||||
unsigned int numglobaldefs;
|
||||
pr_uint_t ofs_globaldefs;
|
||||
pr_uint_t numglobaldefs;
|
||||
|
||||
unsigned int ofs_fielddefs;
|
||||
unsigned int numfielddefs;
|
||||
pr_uint_t ofs_fielddefs;
|
||||
pr_uint_t numfielddefs;
|
||||
|
||||
unsigned int ofs_functions;
|
||||
int numfunctions; // function 0 is an empty
|
||||
pr_uint_t ofs_functions;
|
||||
pr_int_t numfunctions; // function 0 is an empty
|
||||
|
||||
unsigned int ofs_strings;
|
||||
int numstrings; // first string is a null string
|
||||
pr_uint_t ofs_strings;
|
||||
pr_int_t numstrings; // first string is a null string
|
||||
|
||||
unsigned int ofs_globals;
|
||||
unsigned int numglobals;
|
||||
pr_uint_t ofs_globals;
|
||||
pr_uint_t numglobals;
|
||||
|
||||
unsigned int entityfields;
|
||||
pr_uint_t entityfields;
|
||||
} dprograms_t;
|
||||
|
||||
#endif // __pr_comp_h
|
||||
|
|
|
@ -32,34 +32,36 @@
|
|||
#ifndef __pr_debug_h
|
||||
#define __pr_debug_h
|
||||
|
||||
#include "QF/pr_comp.h"
|
||||
|
||||
typedef struct pr_auxfunction_s {
|
||||
unsigned int function; // function def this aux info is for
|
||||
unsigned int source_line; // first source line for this function
|
||||
unsigned int line_info; // index to first lineno entry
|
||||
unsigned int local_defs; // index to the first local def
|
||||
unsigned int num_locals; // number of local defs
|
||||
pr_uint_t function; // function def this aux info is for
|
||||
pr_uint_t source_line; // first source line for this function
|
||||
pr_uint_t line_info; // index to first lineno entry
|
||||
pr_uint_t local_defs; // index to the first local def
|
||||
pr_uint_t num_locals; // number of local defs
|
||||
} pr_auxfunction_t;
|
||||
|
||||
typedef struct pr_lineno_s {
|
||||
union {
|
||||
unsigned int func; // (line==0) index of function aux info
|
||||
unsigned int addr; // (line!=0) dstatement_t address
|
||||
pr_uint_t func; // (line==0) index of function aux info
|
||||
pr_uint_t addr; // (line!=0) dstatement_t address
|
||||
} fa;
|
||||
unsigned int line;
|
||||
pr_uint_t line;
|
||||
} pr_lineno_t;
|
||||
|
||||
#define PROG_DEBUG_VERSION 0x00001001 // MMmmmRRR 0.001.001 (hex)
|
||||
|
||||
typedef struct pr_debug_header_s {
|
||||
int version;
|
||||
unsigned short crc; // of the progs.dat this progs.sym file is for
|
||||
unsigned short you_tell_me_and_we_will_both_know;
|
||||
unsigned int auxfunctions;
|
||||
unsigned int num_auxfunctions;
|
||||
unsigned int linenos;
|
||||
unsigned int num_linenos;
|
||||
unsigned int locals;
|
||||
unsigned int num_locals;
|
||||
pr_int_t version;
|
||||
pr_ushort_t crc; // of the progs.dat this progs.sym file is for
|
||||
pr_ushort_t you_tell_me_and_we_will_both_know;
|
||||
pr_uint_t auxfunctions;
|
||||
pr_uint_t num_auxfunctions;
|
||||
pr_uint_t linenos;
|
||||
pr_uint_t num_linenos;
|
||||
pr_uint_t locals;
|
||||
pr_uint_t num_locals;
|
||||
} pr_debug_header_t;
|
||||
|
||||
#endif//__pr_debug_h
|
||||
|
|
|
@ -34,7 +34,7 @@
|
|||
|
||||
#include "QF/pr_comp.h"
|
||||
|
||||
#define PR_BITS_PER_INT (sizeof (int) * 8)
|
||||
#define PR_BITS_PER_INT (sizeof (pr_int_t) * 8)
|
||||
|
||||
#define __PR_CLS_INFO(cls) ((cls)->info)
|
||||
#define __PR_CLS_ISINFO(cls, mask) ((__PR_CLS_INFO (cls) & (mask)) == (mask))
|
||||
|
@ -90,9 +90,9 @@ typedef struct pr_class_s {
|
|||
pointer_t class_pointer; // pr_class_t
|
||||
pointer_t super_class; // pr_class_t
|
||||
string_t name;
|
||||
int version;
|
||||
unsigned int info;
|
||||
int instance_size;
|
||||
pr_int_t version;
|
||||
pr_uint_t info;
|
||||
pr_int_t instance_size;
|
||||
pointer_t ivars; // pr_ivar_list_t
|
||||
pointer_t methods; // pr_method_list_t
|
||||
pointer_t dtable;
|
||||
|
@ -120,13 +120,13 @@ typedef struct pr_category_s {
|
|||
|
||||
typedef struct pr_protocol_list_s {
|
||||
pointer_t next;
|
||||
int count;
|
||||
pr_int_t count;
|
||||
pointer_t list[1]; // pr_protocol_t
|
||||
} pr_protocol_list_t;
|
||||
|
||||
typedef struct pr_method_list_s {
|
||||
pointer_t method_next;
|
||||
int method_count;
|
||||
pr_int_t method_count;
|
||||
struct pr_method_s {
|
||||
pointer_t method_name; // pr_sel_t
|
||||
string_t method_types;
|
||||
|
@ -136,7 +136,7 @@ typedef struct pr_method_list_s {
|
|||
typedef struct pr_method_s pr_method_t;
|
||||
|
||||
typedef struct pr_method_description_list_s {
|
||||
int count;
|
||||
pr_int_t count;
|
||||
struct pr_method_description_s {
|
||||
pointer_t name; // pr_sel_t
|
||||
string_t types;
|
||||
|
@ -145,11 +145,11 @@ typedef struct pr_method_description_list_s {
|
|||
typedef struct pr_method_description_s pr_method_description_t;
|
||||
|
||||
typedef struct pr_ivar_list_s {
|
||||
int ivar_count;
|
||||
pr_int_t ivar_count;
|
||||
struct pr_ivar_s {
|
||||
string_t ivar_name;
|
||||
string_t ivar_type;
|
||||
int ivar_offset;
|
||||
pr_int_t ivar_offset;
|
||||
} ivar_list[1];
|
||||
} pr_ivar_list_t;
|
||||
typedef struct pr_ivar_s pr_ivar_t;
|
||||
|
@ -163,10 +163,10 @@ typedef struct pr_static_instances_s {
|
|||
} pr_static_instances_t;
|
||||
|
||||
typedef struct pr_symtab_s {
|
||||
int sel_ref_cnt;
|
||||
pr_int_t sel_ref_cnt;
|
||||
pointer_t refs; // pr_sel_t
|
||||
int cls_def_cnt;
|
||||
int cat_def_cnt;
|
||||
pr_int_t cls_def_cnt;
|
||||
pr_int_t cat_def_cnt;
|
||||
pointer_t defs[1]; // variable array of cls_def_cnt class
|
||||
// pointers then cat_def_cnt category
|
||||
// pointers followed by a null terminated
|
||||
|
@ -175,8 +175,8 @@ typedef struct pr_symtab_s {
|
|||
} pr_symtab_t;
|
||||
|
||||
typedef struct pr_module_s {
|
||||
int version;
|
||||
int size;
|
||||
pr_int_t version;
|
||||
pr_int_t size;
|
||||
string_t name;
|
||||
pointer_t symtab; // pr_symtab_t
|
||||
} pr_module_t;
|
||||
|
|
|
@ -174,6 +174,7 @@ void PR_AddLoadFinishFunc (progs_t *pr, pr_load_func_t *func);
|
|||
/** Run all load functions. Any load function returning false will abort the
|
||||
load operation.
|
||||
\param pr pointer to ::progs_t VM struct
|
||||
\return true for success, false for failure
|
||||
|
||||
Calls the first set of internal load functions followed by the supplied
|
||||
symbol resolution function, if any (progs_t::resolve), the second set of
|
||||
|
@ -187,6 +188,7 @@ int PR_RunLoadFuncs (progs_t *pr);
|
|||
/** Validate the opcodes and statement addresses in the progs. This is an
|
||||
internal load function.
|
||||
\param pr pointer to ::progs_t VM struct
|
||||
\return true for success, false for failure
|
||||
|
||||
\todo should this be elsewhere?
|
||||
*/
|
||||
|
@ -217,15 +219,15 @@ struct edict_s {
|
|||
void ED_ClearEdict (progs_t *pr, edict_t *e, int val);
|
||||
edict_t *ED_Alloc (progs_t *pr);
|
||||
void ED_Free (progs_t *pr, edict_t *ed);
|
||||
edict_t *ED_EdictNum(progs_t *pr, int n);
|
||||
int ED_NumForEdict(progs_t *pr, edict_t *e);
|
||||
edict_t *ED_EdictNum(progs_t *pr, pr_int_t n);
|
||||
pr_int_t ED_NumForEdict(progs_t *pr, edict_t *e);
|
||||
void ED_Count (progs_t *pr);
|
||||
qboolean PR_EdictValid (progs_t *pr, int e);
|
||||
qboolean PR_EdictValid (progs_t *pr, pr_int_t e);
|
||||
|
||||
// pr_debug.c
|
||||
void ED_Print (progs_t *pr, edict_t *ed);
|
||||
void ED_PrintEdicts (progs_t *pr, const char *fieldval);
|
||||
void ED_PrintNum (progs_t *pr, int ent);
|
||||
void ED_PrintNum (progs_t *pr, pr_int_t ent);
|
||||
|
||||
// pr_parse.c
|
||||
struct script_s;
|
||||
|
@ -262,8 +264,8 @@ void ED_EntityParseFunction (progs_t *pr);
|
|||
*/
|
||||
//@{
|
||||
|
||||
ddef_t *PR_FieldAtOfs (progs_t *pr, int ofs);
|
||||
ddef_t *PR_GlobalAtOfs (progs_t *pr, int ofs);
|
||||
ddef_t *PR_FieldAtOfs (progs_t *pr, pr_int_t ofs);
|
||||
ddef_t *PR_GlobalAtOfs (progs_t *pr, pr_int_t ofs);
|
||||
|
||||
ddef_t *PR_FindField (progs_t *pr, const char *name);
|
||||
ddef_t *PR_FindGlobal (progs_t *pr, const char *name);
|
||||
|
@ -948,7 +950,7 @@ typedef struct {
|
|||
builtin_proc proc;
|
||||
/// The number of the builtin for \#N in QC. -1 for automatic allocation.
|
||||
/// 0 or >= ::PR_AUTOBUILTIN is invalid.
|
||||
int binum;
|
||||
pr_int_t binum;
|
||||
} builtin_t;
|
||||
|
||||
/** Aliased over the dfunction_t entry for builtin functions. Removes one
|
||||
|
@ -956,7 +958,7 @@ typedef struct {
|
|||
\bug alignment access violations on 64 bit architectures (eg, alpha)
|
||||
*/
|
||||
typedef struct {
|
||||
int first_statement;
|
||||
pr_int_t first_statement;
|
||||
builtin_proc func;
|
||||
} bfunction_t;
|
||||
|
||||
|
@ -979,7 +981,7 @@ builtin_t *PR_FindBuiltin (progs_t *pr, const char *name);
|
|||
\param num number of the builtin function to lookup
|
||||
\return pointer to the builtin function entry, or NULL if not found
|
||||
*/
|
||||
builtin_t *PR_FindBuiltinNum (progs_t *pr, int num);
|
||||
builtin_t *PR_FindBuiltinNum (progs_t *pr, pr_int_t num);
|
||||
|
||||
/** Fixup all automaticly resolved builtin functions (func = #0 in QC).
|
||||
Performs any necessary builtin function number mapping. Also edits the
|
||||
|
@ -988,6 +990,7 @@ builtin_t *PR_FindBuiltinNum (progs_t *pr, int num);
|
|||
during progs load.
|
||||
\bug alignment access violations on 64 bit architectures (eg, alpha)
|
||||
\param pr pointer to ::progs_t VM struct
|
||||
\return true for success, false for failure
|
||||
*/
|
||||
int PR_RelocateBuiltins (progs_t *pr);
|
||||
|
||||
|
@ -1022,6 +1025,7 @@ int PR_RelocateBuiltins (progs_t *pr);
|
|||
/** Initialize the string tables using the strings supplied by the progs.
|
||||
Automaticly called at progs load.
|
||||
\param pr pointer to ::progs_t VM struct
|
||||
\return true for success, false for failure
|
||||
*/
|
||||
int PR_LoadStrings (progs_t *pr);
|
||||
|
||||
|
@ -1260,8 +1264,8 @@ void *PR_Resources_Find (progs_t *pr, const char *name);
|
|||
|
||||
void PR_Zone_Init (progs_t *pr);
|
||||
void PR_Zone_Free (progs_t *pr, void *ptr);
|
||||
void *PR_Zone_Malloc (progs_t *pr, int size);
|
||||
void *PR_Zone_Realloc (progs_t *pr, void *ptr, int size);
|
||||
void *PR_Zone_Malloc (progs_t *pr, pr_int_t size);
|
||||
void *PR_Zone_Realloc (progs_t *pr, void *ptr, pr_int_t size);
|
||||
|
||||
//@}
|
||||
|
||||
|
@ -1275,12 +1279,12 @@ void PR_Debug_Init (void);
|
|||
void PR_Debug_Init_Cvars (void);
|
||||
int PR_LoadDebug (progs_t *pr);
|
||||
pr_auxfunction_t *PR_Get_Lineno_Func (progs_t *pr, pr_lineno_t *lineno);
|
||||
unsigned int PR_Get_Lineno_Addr (progs_t *pr, pr_lineno_t *lineno);
|
||||
unsigned int PR_Get_Lineno_Line (progs_t *pr, pr_lineno_t *lineno);
|
||||
pr_lineno_t *PR_Find_Lineno (progs_t *pr, unsigned int addr);
|
||||
pr_uint_t PR_Get_Lineno_Addr (progs_t *pr, pr_lineno_t *lineno);
|
||||
pr_uint_t PR_Get_Lineno_Line (progs_t *pr, pr_lineno_t *lineno);
|
||||
pr_lineno_t *PR_Find_Lineno (progs_t *pr, pr_uint_t addr);
|
||||
const char *PR_Get_Source_File (progs_t *pr, pr_lineno_t *lineno);
|
||||
const char *PR_Get_Source_Line (progs_t *pr, unsigned int addr);
|
||||
ddef_t *PR_Get_Local_Def (progs_t *pr, int offs);
|
||||
const char *PR_Get_Source_Line (progs_t *pr, pr_uint_t addr);
|
||||
ddef_t *PR_Get_Local_Def (progs_t *pr, pr_int_t offs);
|
||||
void PR_PrintStatement (progs_t *pr, dstatement_t *s, int contents);
|
||||
void PR_DumpState (progs_t *pr);
|
||||
void PR_StackTrace (progs_t *pr);
|
||||
|
@ -1467,7 +1471,7 @@ struct progs_s {
|
|||
\return C pointer represented by the parameter. 0 offset -> NULL
|
||||
*/
|
||||
static inline pr_type_t *
|
||||
PR_GetPointer (progs_t *pr, int o)
|
||||
PR_GetPointer (progs_t *pr, pr_uint_t o)
|
||||
{
|
||||
return o ? pr->pr_globals + o : 0;
|
||||
}
|
||||
|
|
|
@ -32,6 +32,7 @@
|
|||
#define __qtypes_h
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdint.h>
|
||||
|
||||
#ifdef HAVE_SYSTEM_MSG_T
|
||||
# define msg_t sys_msg_t
|
||||
|
|
|
@ -137,7 +137,7 @@ PR_FindBuiltin (progs_t *pr, const char *name)
|
|||
}
|
||||
|
||||
builtin_t *
|
||||
PR_FindBuiltinNum (progs_t *pr, int num)
|
||||
PR_FindBuiltinNum (progs_t *pr, pr_int_t num)
|
||||
{
|
||||
builtin_t bi;
|
||||
|
||||
|
|
|
@ -65,7 +65,7 @@ typedef struct {
|
|||
char *name;
|
||||
char *text;
|
||||
line_t *lines;
|
||||
unsigned int num_lines;
|
||||
pr_uint_t num_lines;
|
||||
progs_t *pr;
|
||||
} file_t;
|
||||
|
||||
|
@ -186,9 +186,9 @@ PR_Load_Source_File (progs_t *pr, const char *fname)
|
|||
VISIBLE int
|
||||
PR_LoadDebug (progs_t *pr)
|
||||
{
|
||||
char *sym_path;
|
||||
const char *path_end, *sym_file;
|
||||
unsigned int i;
|
||||
char *sym_path;
|
||||
const char *path_end, *sym_file;
|
||||
pr_uint_t i;
|
||||
ddef_t *def;
|
||||
pr_type_t *str = 0;
|
||||
|
||||
|
@ -302,7 +302,7 @@ PR_Get_Lineno_Func (progs_t *pr, pr_lineno_t *lineno)
|
|||
return &pr->auxfunctions[lineno->fa.func];
|
||||
}
|
||||
|
||||
unsigned int
|
||||
pr_uint_t
|
||||
PR_Get_Lineno_Addr (progs_t *pr, pr_lineno_t *lineno)
|
||||
{
|
||||
pr_auxfunction_t *f;
|
||||
|
@ -313,7 +313,7 @@ PR_Get_Lineno_Addr (progs_t *pr, pr_lineno_t *lineno)
|
|||
return pr->pr_functions[f->function].first_statement;
|
||||
}
|
||||
|
||||
unsigned int
|
||||
pr_uint_t
|
||||
PR_Get_Lineno_Line (progs_t *pr, pr_lineno_t *lineno)
|
||||
{
|
||||
if (lineno->line)
|
||||
|
@ -322,18 +322,18 @@ PR_Get_Lineno_Line (progs_t *pr, pr_lineno_t *lineno)
|
|||
}
|
||||
|
||||
pr_lineno_t *
|
||||
PR_Find_Lineno (progs_t *pr, unsigned int addr)
|
||||
PR_Find_Lineno (progs_t *pr, pr_uint_t addr)
|
||||
{
|
||||
int i;
|
||||
pr_lineno_t *lineno = 0;
|
||||
pr_uint_t i;
|
||||
pr_lineno_t *lineno = 0;
|
||||
|
||||
if (!pr->debug)
|
||||
return 0;
|
||||
if (!pr->debug->num_linenos)
|
||||
return 0;
|
||||
for (i = pr->debug->num_linenos - 1; i >= 0; i--) {
|
||||
if (PR_Get_Lineno_Addr (pr, &pr->linenos[i]) <= addr) {
|
||||
lineno = &pr->linenos[i];
|
||||
for (i = pr->debug->num_linenos; i > 0; i--) {
|
||||
if (PR_Get_Lineno_Addr (pr, &pr->linenos[i - 1]) <= addr) {
|
||||
lineno = &pr->linenos[i - 1];
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -350,13 +350,13 @@ PR_Get_Source_File (progs_t *pr, pr_lineno_t *lineno)
|
|||
}
|
||||
|
||||
const char *
|
||||
PR_Get_Source_Line (progs_t *pr, unsigned int addr)
|
||||
PR_Get_Source_Line (progs_t *pr, pr_uint_t addr)
|
||||
{
|
||||
const char *fname;
|
||||
unsigned int line;
|
||||
file_t *file;
|
||||
pr_auxfunction_t *func;
|
||||
pr_lineno_t *lineno;
|
||||
const char *fname;
|
||||
pr_uint_t line;
|
||||
file_t *file;
|
||||
pr_auxfunction_t *func;
|
||||
pr_lineno_t *lineno;
|
||||
|
||||
lineno = PR_Find_Lineno (pr, addr);
|
||||
if (!lineno || PR_Get_Lineno_Addr (pr, lineno) != addr)
|
||||
|
@ -378,11 +378,11 @@ PR_Get_Source_Line (progs_t *pr, unsigned int addr)
|
|||
}
|
||||
|
||||
ddef_t *
|
||||
PR_Get_Local_Def (progs_t *pr, int offs)
|
||||
PR_Get_Local_Def (progs_t *pr, pr_int_t offs)
|
||||
{
|
||||
unsigned int i;
|
||||
dfunction_t *func = pr->pr_xfunction;
|
||||
pr_auxfunction_t *aux_func;
|
||||
pr_uint_t i;
|
||||
dfunction_t *func = pr->pr_xfunction;
|
||||
pr_auxfunction_t *aux_func;
|
||||
|
||||
if (!func)
|
||||
return 0;
|
||||
|
@ -428,7 +428,7 @@ value_string (progs_t *pr, etype_t type, pr_type_t *val)
|
|||
{
|
||||
static dstring_t *line;
|
||||
ddef_t *def;
|
||||
int ofs;
|
||||
pr_int_t ofs;
|
||||
edict_t *edict;
|
||||
dfunction_t *f;
|
||||
const char *str;
|
||||
|
@ -537,7 +537,7 @@ value_string (progs_t *pr, etype_t type, pr_type_t *val)
|
|||
}
|
||||
|
||||
static ddef_t *
|
||||
def_string (progs_t *pr, int ofs, dstring_t *dstr)
|
||||
def_string (progs_t *pr, pr_int_t ofs, dstring_t *dstr)
|
||||
{
|
||||
ddef_t *def = 0;
|
||||
const char *name;
|
||||
|
@ -554,11 +554,11 @@ def_string (progs_t *pr, int ofs, dstring_t *dstr)
|
|||
}
|
||||
|
||||
static const char *
|
||||
global_string (progs_t *pr, int ofs, etype_t type, int contents)
|
||||
global_string (progs_t *pr, pr_int_t ofs, etype_t type, int contents)
|
||||
{
|
||||
ddef_t *def = NULL;
|
||||
static dstring_t *line = NULL;
|
||||
const char *s;
|
||||
static dstring_t *line = NULL;
|
||||
ddef_t *def = NULL;
|
||||
const char *s;
|
||||
|
||||
if (!line)
|
||||
line = dstring_newstr();
|
||||
|
@ -595,11 +595,11 @@ global_string (progs_t *pr, int ofs, etype_t type, int contents)
|
|||
}
|
||||
|
||||
VISIBLE void
|
||||
PR_PrintStatement (progs_t * pr, dstatement_t *s, int contents)
|
||||
PR_PrintStatement (progs_t *pr, dstatement_t *s, int contents)
|
||||
{
|
||||
int addr = s - pr->pr_statements;
|
||||
int addr = s - pr->pr_statements;
|
||||
const char *fmt;
|
||||
opcode_t *op;
|
||||
opcode_t *op;
|
||||
static dstring_t *line;
|
||||
|
||||
if (!line)
|
||||
|
@ -641,7 +641,7 @@ PR_PrintStatement (progs_t * pr, dstatement_t *s, int contents)
|
|||
} else {
|
||||
const char *str;
|
||||
char mode = fmt[1], opchar = fmt[2];
|
||||
long opval;
|
||||
pr_int_t opval;
|
||||
etype_t optype;
|
||||
|
||||
switch (opchar) {
|
||||
|
@ -705,8 +705,8 @@ dump_frame (progs_t *pr, prstack_t *frame)
|
|||
if (pr_debug->int_val && pr->debug) {
|
||||
pr_lineno_t *lineno = PR_Find_Lineno (pr, frame->s);
|
||||
pr_auxfunction_t *func = PR_Get_Lineno_Func (pr, lineno);
|
||||
unsigned int line = PR_Get_Lineno_Line (pr, lineno);
|
||||
int addr = PR_Get_Lineno_Addr (pr, lineno);
|
||||
pr_uint_t line = PR_Get_Lineno_Line (pr, lineno);
|
||||
pr_int_t addr = PR_Get_Lineno_Addr (pr, lineno);
|
||||
|
||||
line += func->source_line;
|
||||
if (addr == frame->s) {
|
||||
|
@ -731,8 +731,8 @@ dump_frame (progs_t *pr, prstack_t *frame)
|
|||
void
|
||||
PR_StackTrace (progs_t *pr)
|
||||
{
|
||||
int i;
|
||||
prstack_t top;
|
||||
int i;
|
||||
prstack_t top;
|
||||
|
||||
if (pr->pr_depth == 0) {
|
||||
Sys_Printf ("<NO STACK>\n");
|
||||
|
@ -749,8 +749,8 @@ PR_StackTrace (progs_t *pr)
|
|||
VISIBLE void
|
||||
PR_Profile (progs_t * pr)
|
||||
{
|
||||
int max, num, i;
|
||||
dfunction_t *best, *f;
|
||||
int max, num, i;
|
||||
dfunction_t *best, *f;
|
||||
|
||||
num = 0;
|
||||
do {
|
||||
|
@ -782,7 +782,7 @@ VISIBLE void
|
|||
ED_Print (progs_t *pr, edict_t *ed)
|
||||
{
|
||||
int type, l;
|
||||
unsigned int i;
|
||||
pr_uint_t i;
|
||||
const char *name;
|
||||
ddef_t *d;
|
||||
pr_type_t *v;
|
||||
|
|
|
@ -147,7 +147,7 @@ ED_Free (progs_t *pr, edict_t *ed)
|
|||
|
||||
|
||||
VISIBLE void
|
||||
ED_PrintNum (progs_t *pr, int ent)
|
||||
ED_PrintNum (progs_t *pr, pr_int_t ent)
|
||||
{
|
||||
ED_Print (pr, EDICT_NUM (pr, ent));
|
||||
}
|
||||
|
@ -221,19 +221,20 @@ ED_Count (progs_t *pr)
|
|||
}
|
||||
|
||||
edict_t *
|
||||
ED_EdictNum (progs_t *pr, int n)
|
||||
ED_EdictNum (progs_t *pr, pr_int_t n)
|
||||
{
|
||||
int offs = n * pr->pr_edict_size;
|
||||
pr_int_t offs = n * pr->pr_edict_size;
|
||||
|
||||
if (offs < 0 || n >= pr->pr_edictareasize)
|
||||
PR_RunError (pr, "EDICT_NUM: bad number %i", n);
|
||||
|
||||
return PROG_TO_EDICT (pr, offs);
|
||||
}
|
||||
|
||||
int
|
||||
pr_int_t
|
||||
ED_NumForEdict (progs_t *pr, edict_t *e)
|
||||
{
|
||||
int b;
|
||||
pr_int_t b;
|
||||
|
||||
b = NUM_FOR_BAD_EDICT (pr, e);
|
||||
|
||||
|
@ -245,7 +246,7 @@ ED_NumForEdict (progs_t *pr, edict_t *e)
|
|||
}
|
||||
|
||||
qboolean
|
||||
PR_EdictValid (progs_t *pr, int e)
|
||||
PR_EdictValid (progs_t *pr, pr_int_t e)
|
||||
{
|
||||
if (e < 0 || e >= pr->pr_edictareasize)
|
||||
return false;
|
||||
|
|
|
@ -1160,7 +1160,7 @@ opcode_compare (void *_opa, void *_opb, void *unused)
|
|||
}
|
||||
|
||||
opcode_t *
|
||||
PR_Opcode (short opcode)
|
||||
PR_Opcode (pr_short_t opcode)
|
||||
{
|
||||
opcode_t op;
|
||||
|
||||
|
|
|
@ -56,10 +56,10 @@ static __attribute__ ((used)) const char rcsid[] =
|
|||
|
||||
|
||||
ddef_t *
|
||||
PR_GlobalAtOfs (progs_t * pr, int ofs)
|
||||
PR_GlobalAtOfs (progs_t * pr, pr_int_t ofs)
|
||||
{
|
||||
ddef_t *def;
|
||||
unsigned int i;
|
||||
pr_uint_t i;
|
||||
|
||||
for (i = 0; i < pr->progs->numglobaldefs; i++) {
|
||||
def = &pr->pr_globaldefs[i];
|
||||
|
@ -70,10 +70,10 @@ PR_GlobalAtOfs (progs_t * pr, int ofs)
|
|||
}
|
||||
|
||||
VISIBLE ddef_t *
|
||||
PR_FieldAtOfs (progs_t * pr, int ofs)
|
||||
PR_FieldAtOfs (progs_t * pr, pr_int_t ofs)
|
||||
{
|
||||
ddef_t *def;
|
||||
unsigned int i;
|
||||
pr_uint_t i;
|
||||
|
||||
for (i = 0; i < pr->progs->numfielddefs; i++) {
|
||||
def = &pr->pr_fielddefs[i];
|
||||
|
|
|
@ -61,13 +61,13 @@ PR_Zone_Free (progs_t *pr, void *ptr)
|
|||
}
|
||||
|
||||
VISIBLE void *
|
||||
PR_Zone_Malloc (progs_t *pr, int size)
|
||||
PR_Zone_Malloc (progs_t *pr, pr_int_t size)
|
||||
{
|
||||
return Z_Malloc (pr->zone, size);
|
||||
}
|
||||
|
||||
VISIBLE void *
|
||||
PR_Zone_Realloc (progs_t *pr, void *ptr, int size)
|
||||
PR_Zone_Realloc (progs_t *pr, void *ptr, pr_int_t size)
|
||||
{
|
||||
return Z_Realloc (pr->zone, ptr, size);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue