mirror of
https://git.code.sf.net/p/quake/quakeforge
synced 2025-01-31 13:10:34 +00:00
[qfcc] Correct xdef structures and usage in test
Attempting to add ev_ushort caused ptraliasenc to break, but that was because it was already broken: I had implemented the scan of the xdef table incorrectly, thus adding only 1 ev type resulted in the walked pointer being out of phase with its data due to it first passing over the type encodings (which is why adding long and ulong didn't cause any obvious trouble).
This commit is contained in:
parent
5b97aa3897
commit
6df79b2b06
2 changed files with 13 additions and 7 deletions
|
@ -1210,7 +1210,7 @@ init_types (void)
|
|||
};
|
||||
static struct_def_t type_encoding_struct[] = {
|
||||
{"types", &type_pointer},
|
||||
{"size", &type_int},
|
||||
{"size", &type_uint},
|
||||
{0, 0}
|
||||
};
|
||||
static struct_def_t xdef_struct[] = {
|
||||
|
@ -1220,7 +1220,7 @@ init_types (void)
|
|||
};
|
||||
static struct_def_t xdefs_struct[] = {
|
||||
{"xdefs", &type_xdef_pointer},
|
||||
{"num_xdefs", &type_pointer},
|
||||
{"num_xdefs", &type_uint},
|
||||
{0, 0}
|
||||
};
|
||||
static struct_def_t va_list_struct[] = {
|
||||
|
|
|
@ -10,16 +10,22 @@ typedef struct xdef_s {
|
|||
void *ofs; ///< 32-bit version of ddef_t.ofs
|
||||
} xdef_t;
|
||||
|
||||
typedef struct xdefs_s {
|
||||
xdef_t *xdefs;
|
||||
unsigned num_xdefs;
|
||||
} xdefs_t;
|
||||
|
||||
void *PR_FindGlobal (string name) = #0;
|
||||
|
||||
int
|
||||
main (void)
|
||||
{
|
||||
//FIXME need a simple way to get at a def's meta-data
|
||||
xdef_t *xdefs = PR_FindGlobal (".xdefs");
|
||||
while (xdefs.ofs != &int32_ptr) {
|
||||
xdefs++;
|
||||
xdefs_t *xdefs = PR_FindGlobal (".xdefs");
|
||||
xdef_t *xdef = xdefs.xdefs;
|
||||
while (xdef - xdefs.xdefs < xdefs.num_xdefs && xdef.ofs != &int32_ptr) {
|
||||
xdef++;
|
||||
}
|
||||
printf ("int32_ptr: %s\n", xdefs.type.encoding);
|
||||
return xdefs.type.encoding != "{>^i}";
|
||||
printf ("int32_ptr: %s\n", xdef.type.encoding);
|
||||
return xdef.type.encoding != "{>^i}";
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue