mirror of
https://git.code.sf.net/p/quake/quakeforge
synced 2025-02-25 05:01:24 +00:00
[qfcc] add pointer validity check function to test-harness
This commit is contained in:
parent
192eb11235
commit
3a22091455
2 changed files with 19 additions and 6 deletions
|
@ -96,15 +96,27 @@ bi_remove (progs_t *pr, void *data)
|
|||
ED_Free (pr, ed);
|
||||
}
|
||||
|
||||
static void
|
||||
bi_ptr_valid (progs_t *pr, void *data)
|
||||
{
|
||||
pr_ptr_t ptr = P_POINTER (pr, 0);
|
||||
R_INT (pr) = 1;
|
||||
// check for null pointers (or nearly null)
|
||||
R_INT (pr) &= !(ptr < pr->null_size);
|
||||
// pointer is too large
|
||||
R_INT (pr) &= !(ptr >= pr->globals_size);
|
||||
}
|
||||
|
||||
#define bi(x,np,params...) {#x, bi_##x, -1, np, {params}}
|
||||
#define p(type) PR_PARAM(type)
|
||||
static builtin_t builtins[] = {
|
||||
bi(printf, -2, p(string)),
|
||||
bi(errno, 0),
|
||||
bi(strerror, 1, p(int)),
|
||||
bi(exit, 1, p(int)),
|
||||
bi(spawn, 0),
|
||||
bi(remove, 1, p(entity)),
|
||||
bi(printf, -2, p(string)),
|
||||
bi(errno, 0),
|
||||
bi(strerror, 1, p(int)),
|
||||
bi(exit, 1, p(int)),
|
||||
bi(spawn, 0),
|
||||
bi(remove, 1, p(entity)),
|
||||
bi(ptr_valid, 1, p(ptr)),
|
||||
{0}
|
||||
};
|
||||
|
||||
|
|
|
@ -7,5 +7,6 @@ void traceon (void) = #0;
|
|||
void traceoff (void) = #0;
|
||||
entity spawn (void) = #0;
|
||||
void remove (entity e) = #0;
|
||||
int ptr_valid (void *ptr) = #0;
|
||||
id obj_msgSend (id receiver, SEL op, ...) = #0;
|
||||
void __obj_exec_class (struct obj_module *msg) = #0;
|
||||
|
|
Loading…
Reference in a new issue