From 9c51c3d2e1d0719906dc7d8ef26ac11b9a29815b Mon Sep 17 00:00:00 2001 From: Bill Currie Date: Mon, 24 Jan 2022 00:20:05 +0900 Subject: [PATCH] [gamecode] Add a data pointer passed to builtin functions This is part of the work for #26 (Record resource pointer with builtin function data). Currently, the data pointer gets as far as the per-instance VM function table (I don't feel like tackling the job of converting all the builtin functions tonight). All the builtin modules that register a resources data block pass that block on to PR_RegisterBuiltins. --- include/QF/progs.h | 8 +++++++- libs/audio/snd_progs.c | 2 +- libs/console/bi_inputline.c | 2 +- libs/console/menu.c | 2 +- libs/gamecode/pr_builtins.c | 15 +++++++++++---- libs/gib/bi_gib.c | 5 ++--- libs/ruamoko/pr_cmds.c | 2 +- libs/ruamoko/rua_cbuf.c | 2 +- libs/ruamoko/rua_cmd.c | 4 ++-- libs/ruamoko/rua_cvar.c | 3 +-- libs/ruamoko/rua_hash.c | 2 +- libs/ruamoko/rua_input.c | 8 ++++---- libs/ruamoko/rua_keys.c | 2 +- libs/ruamoko/rua_math.c | 2 +- libs/ruamoko/rua_mersenne.c | 2 +- libs/ruamoko/rua_msgbuf.c | 2 +- libs/ruamoko/rua_obj.c | 3 +-- libs/ruamoko/rua_plist.c | 2 +- libs/ruamoko/rua_qfile.c | 6 +++--- libs/ruamoko/rua_qfs.c | 2 +- libs/ruamoko/rua_runtime.c | 2 +- libs/ruamoko/rua_script.c | 3 +-- libs/ruamoko/rua_set.c | 2 +- libs/ruamoko/rua_stdlib.c | 2 +- libs/ruamoko/rua_string.c | 2 +- libs/video/renderer/r_progs.c | 2 +- nq/source/sv_pr_cmds.c | 2 +- qw/source/sv_pr_cmds.c | 2 +- qw/source/sv_pr_cpqw.c | 2 +- qw/source/sv_pr_qwe.c | 2 +- qw/source/sv_user.c | 2 +- ruamoko/qwaq/builtins/curses.c | 2 +- ruamoko/qwaq/builtins/debug.c | 2 +- ruamoko/qwaq/builtins/editbuffer.c | 2 +- ruamoko/qwaq/builtins/graphics.c | 2 +- ruamoko/qwaq/builtins/main.c | 2 +- ruamoko/qwaq/builtins/term-input.c | 2 +- tools/qfcc/test/test-bi.c | 2 +- 38 files changed, 61 insertions(+), 52 deletions(-) diff --git a/include/QF/progs.h b/include/QF/progs.h index bac575b87..066a479af 100644 --- a/include/QF/progs.h +++ b/include/QF/progs.h @@ -1208,6 +1208,9 @@ typedef struct { /// The encoding is the same as for progs functions, with 3:5 for /// alignment:size (size 0 means 32 words). dparmsize_t params[PR_MAX_PARAMS]; + + /// Data passed to builtin functions. Set by PR_RegisterBuiltins + void *data; } builtin_t; #define PR_PARAM(type) { \ @@ -1238,6 +1241,7 @@ typedef struct { // arugments, or they'll be modified to do the right thing. pr_ushort_t param_offsets[PR_MAX_PARAMS]; builtin_proc func; + void *data; ///< extra data passed to the builtin }; }; } bfunction_t; @@ -1247,8 +1251,10 @@ typedef struct { for the same VM, but redefining a builtin is an error. \param pr pointer to ::progs_t VM struct \param builtins array of builtin_t builtins + \param data pointer to builtin-specific data. Usually the resources + struct registered with PR_Resources_Register */ -void PR_RegisterBuiltins (progs_t *pr, builtin_t *builtins); +void PR_RegisterBuiltins (progs_t *pr, builtin_t *builtins, void *data); /** Lookup a builtin function referred by name. \param pr pointer to ::progs_t VM struct diff --git a/libs/audio/snd_progs.c b/libs/audio/snd_progs.c index 8e77bdde7..912686412 100644 --- a/libs/audio/snd_progs.c +++ b/libs/audio/snd_progs.c @@ -57,5 +57,5 @@ static builtin_t builtins[] = { VISIBLE void S_Progs_Init (progs_t *pr) { - PR_RegisterBuiltins (pr, builtins); + PR_RegisterBuiltins (pr, builtins, 0); } diff --git a/libs/console/bi_inputline.c b/libs/console/bi_inputline.c index af8fba096..69494450f 100644 --- a/libs/console/bi_inputline.c +++ b/libs/console/bi_inputline.c @@ -328,7 +328,7 @@ InputLine_Progs_Init (progs_t *pr) il_resources_t *res = calloc (1, sizeof (il_resources_t)); PR_Resources_Register (pr, "InputLine", res, bi_il_clear); - PR_RegisterBuiltins (pr, builtins); + PR_RegisterBuiltins (pr, builtins, res); } VISIBLE void diff --git a/libs/console/menu.c b/libs/console/menu.c index aea52cefc..fd34f6a68 100644 --- a/libs/console/menu.c +++ b/libs/console/menu.c @@ -599,7 +599,7 @@ Menu_Init (void) menu_hash = Hash_NewTable (61, menu_get_key, menu_free, 0, 0); - PR_RegisterBuiltins (&menu_pr_state, builtins); + PR_RegisterBuiltins (&menu_pr_state, builtins, 0); RUA_Init (&menu_pr_state, 3); diff --git a/libs/gamecode/pr_builtins.c b/libs/gamecode/pr_builtins.c index 150b43932..ab5088b9b 100644 --- a/libs/gamecode/pr_builtins.c +++ b/libs/gamecode/pr_builtins.c @@ -102,7 +102,7 @@ bi_no_function (progs_t *pr) } VISIBLE void -PR_RegisterBuiltins (progs_t *pr, builtin_t *builtins) +PR_RegisterBuiltins (progs_t *pr, builtin_t *builtins, void *data) { builtin_t *bi; int count; @@ -135,21 +135,25 @@ PR_RegisterBuiltins (progs_t *pr, builtin_t *builtins) builtins = bi; while (builtins->name) { - if (builtins->binum == 0 || builtins->binum >= PR_AUTOBUILTIN) + if (builtins->binum == 0 || builtins->binum >= PR_AUTOBUILTIN) { PR_Error (pr, "bad builtin number: %s = #%d", builtins->name, builtins->binum); + } - if (builtins->binum < 0) + if (builtins->binum < 0) { builtins->binum = builtin_next (pr); + } if ((bi = Hash_Find (pr->builtin_hash, builtins->name)) - || (bi = Hash_FindElement (pr->builtin_num_hash, builtins))) + || (bi = Hash_FindElement (pr->builtin_num_hash, builtins))) { PR_Error (pr, "builtin %s = #%d already defined (%s = #%d)", builtins->name, builtins->binum, bi->name, bi->binum); + } Hash_Add (pr->builtin_hash, builtins); Hash_AddElement (pr->builtin_num_hash, builtins); + builtins->data = data; builtins++; } @@ -231,6 +235,9 @@ PR_RelocateBuiltins (progs_t *pr) } func->first_statement = desc->first_statement; func->func = proc; + if (bi) { + func->data = bi->data; + } } if (bad) { Sys_Printf ("PR_RelocateBuiltins: %s: progs may not work due to " diff --git a/libs/gib/bi_gib.c b/libs/gib/bi_gib.c index 28d5401c0..8c0deb4e8 100644 --- a/libs/gib/bi_gib.c +++ b/libs/gib/bi_gib.c @@ -193,11 +193,10 @@ GIB_Progs_Init (progs_t *pr) bi_gib_resources_t *res = malloc (sizeof (bi_gib_resources_t)); res->builtins = 0; - PR_Resources_Register (pr, "GIB", res, bi_gib_builtin_clear); - bi_gib_builtins = Hash_NewTable (1021, bi_gib_builtin_get_key, bi_gib_builtin_free, 0, pr->hashlink_freelist); - PR_RegisterBuiltins (pr, builtins); + PR_Resources_Register (pr, "GIB", res, bi_gib_builtin_clear); + PR_RegisterBuiltins (pr, builtins, res); } diff --git a/libs/ruamoko/pr_cmds.c b/libs/ruamoko/pr_cmds.c index 7c70b82d6..24d3f6294 100644 --- a/libs/ruamoko/pr_cmds.c +++ b/libs/ruamoko/pr_cmds.c @@ -628,5 +628,5 @@ static builtin_t builtins[] = { VISIBLE void PR_Cmds_Init (progs_t *pr) { - PR_RegisterBuiltins (pr, builtins); + PR_RegisterBuiltins (pr, builtins, 0); } diff --git a/libs/ruamoko/rua_cbuf.c b/libs/ruamoko/rua_cbuf.c index 0a3870d80..7f96f4783 100644 --- a/libs/ruamoko/rua_cbuf.c +++ b/libs/ruamoko/rua_cbuf.c @@ -109,7 +109,7 @@ RUA_Cbuf_Init (progs_t *pr, int secure) { cbuf_resources_t *res = calloc (sizeof (cbuf_resources_t), 1); PR_Resources_Register (pr, "Cbuf", res, bi_cbuf_clear); - PR_RegisterBuiltins (pr, builtins); + PR_RegisterBuiltins (pr, builtins, res); } VISIBLE void diff --git a/libs/ruamoko/rua_cmd.c b/libs/ruamoko/rua_cmd.c index 8be474e50..c325e3c3a 100644 --- a/libs/ruamoko/rua_cmd.c +++ b/libs/ruamoko/rua_cmd.c @@ -161,11 +161,11 @@ RUA_Cmd_Init (progs_t *pr, int secure) cmd_resources_t *res = calloc (1, sizeof (cmd_resources_t)); res->cmds = 0; - PR_Resources_Register (pr, "Cmd", res, bi_cmd_clear); if (!bi_cmds) bi_cmds = Hash_NewTable (1021, bi_cmd_get_key, bi_cmd_free, 0, pr->hashlink_freelist); - PR_RegisterBuiltins (pr, builtins); + PR_Resources_Register (pr, "Cmd", res, bi_cmd_clear); + PR_RegisterBuiltins (pr, builtins, res); } diff --git a/libs/ruamoko/rua_cvar.c b/libs/ruamoko/rua_cvar.c index 4cf68ee4f..12cc3fca1 100644 --- a/libs/ruamoko/rua_cvar.c +++ b/libs/ruamoko/rua_cvar.c @@ -257,6 +257,5 @@ RUA_Cvar_Init (progs_t *pr, int secure) res->aliases = 0; PR_Resources_Register (pr, "Cvar", res, bi_cvar_clear); - - PR_RegisterBuiltins (pr, builtins); + PR_RegisterBuiltins (pr, builtins, res); } diff --git a/libs/ruamoko/rua_hash.c b/libs/ruamoko/rua_hash.c index a1b277706..c2cf1f8f7 100644 --- a/libs/ruamoko/rua_hash.c +++ b/libs/ruamoko/rua_hash.c @@ -389,5 +389,5 @@ RUA_Hash_Init (progs_t *pr, int secure) res->tabs = 0; PR_Resources_Register (pr, "Hash", res, bi_hash_clear); - PR_RegisterBuiltins (pr, builtins); + PR_RegisterBuiltins (pr, builtins, res); } diff --git a/libs/ruamoko/rua_input.c b/libs/ruamoko/rua_input.c index e93d88085..e54dc73e2 100644 --- a/libs/ruamoko/rua_input.c +++ b/libs/ruamoko/rua_input.c @@ -497,17 +497,17 @@ void RUA_Input_Init (progs_t *pr, int secure) { input_resources_t *res = calloc (sizeof (input_resources_t), 1); - PR_Resources_Register (pr, "input", res, bi_input_clear); res->cookie_super = new_memsuper (); res->cookies = Hash_NewTable (251, 0, rua_in_free_cookie, res, &res->hash_links); Hash_SetHashCompare (res->cookies, rua_in_hash_cookie, rua_in_cmp_cookies); + PR_Resources_Register (pr, "input", res, bi_input_clear); if (secure & 2) { - PR_RegisterBuiltins (pr, secure_builtins); + PR_RegisterBuiltins (pr, secure_builtins, res); } else { - PR_RegisterBuiltins (pr, insecure_builtins); + PR_RegisterBuiltins (pr, insecure_builtins, res); } - PR_RegisterBuiltins (pr, builtins); + PR_RegisterBuiltins (pr, builtins, res); } diff --git a/libs/ruamoko/rua_keys.c b/libs/ruamoko/rua_keys.c index 2f09ae227..d6e9acaa8 100644 --- a/libs/ruamoko/rua_keys.c +++ b/libs/ruamoko/rua_keys.c @@ -181,5 +181,5 @@ static builtin_t builtins[] = { void RUA_Key_Init (progs_t *pr) { - PR_RegisterBuiltins (pr, builtins); + PR_RegisterBuiltins (pr, builtins, 0); } diff --git a/libs/ruamoko/rua_math.c b/libs/ruamoko/rua_math.c index 21d96fb6d..2d7e09398 100644 --- a/libs/ruamoko/rua_math.c +++ b/libs/ruamoko/rua_math.c @@ -375,5 +375,5 @@ static builtin_t builtins[] = { void RUA_Math_Init (progs_t *pr, int secure) { - PR_RegisterBuiltins (pr, builtins); + PR_RegisterBuiltins (pr, builtins, 0); } diff --git a/libs/ruamoko/rua_mersenne.c b/libs/ruamoko/rua_mersenne.c index 200b56785..c55c495c1 100644 --- a/libs/ruamoko/rua_mersenne.c +++ b/libs/ruamoko/rua_mersenne.c @@ -163,5 +163,5 @@ RUA_Mersenne_Init (progs_t *pr, int secure) mtwist_resources_t *res = calloc (1, sizeof (mtwist_resources_t)); PR_Resources_Register (pr, "Mersenne Twister", res, bi_mtwist_clear); - PR_RegisterBuiltins (pr, builtins); + PR_RegisterBuiltins (pr, builtins, res); } diff --git a/libs/ruamoko/rua_msgbuf.c b/libs/ruamoko/rua_msgbuf.c index 5d28bf53c..c2420ed99 100644 --- a/libs/ruamoko/rua_msgbuf.c +++ b/libs/ruamoko/rua_msgbuf.c @@ -448,5 +448,5 @@ RUA_MsgBuf_Init (progs_t *pr, int secure) msgbuf_resources_t *res = calloc (sizeof (msgbuf_resources_t), 1); PR_Resources_Register (pr, "MsgBuf", res, bi_msgbuf_clear); - PR_RegisterBuiltins (pr, builtins); + PR_RegisterBuiltins (pr, builtins, res); } diff --git a/libs/ruamoko/rua_obj.c b/libs/ruamoko/rua_obj.c index 819f9c3c8..2fe0b85f7 100644 --- a/libs/ruamoko/rua_obj.c +++ b/libs/ruamoko/rua_obj.c @@ -2245,8 +2245,7 @@ RUA_Obj_Init (progs_t *pr, int secure) load_methods_compare); PR_Resources_Register (pr, "RUA_ObjectiveQuakeC", probj, rua_obj_cleanup); - - PR_RegisterBuiltins (pr, obj_methods); + PR_RegisterBuiltins (pr, obj_methods, probj); PR_AddLoadFunc (pr, rua_obj_init_runtime); } diff --git a/libs/ruamoko/rua_plist.c b/libs/ruamoko/rua_plist.c index 1f27c6b74..4aae2db06 100644 --- a/libs/ruamoko/rua_plist.c +++ b/libs/ruamoko/rua_plist.c @@ -479,5 +479,5 @@ RUA_Plist_Init (progs_t *pr, int secure) Hash_SetHashCompare (res->plist_tab, plist_get_hash, plist_compare); PR_Resources_Register (pr, "plist", res, bi_plist_clear); - PR_RegisterBuiltins (pr, builtins); + PR_RegisterBuiltins (pr, builtins, res); } diff --git a/libs/ruamoko/rua_qfile.c b/libs/ruamoko/rua_qfile.c index afe23a4e7..1fee454dc 100644 --- a/libs/ruamoko/rua_qfile.c +++ b/libs/ruamoko/rua_qfile.c @@ -390,9 +390,9 @@ RUA_QFile_Init (progs_t *pr, int secure) PR_Resources_Register (pr, "QFile", res, bi_qfile_clear); if (secure) { - PR_RegisterBuiltins (pr, secure_builtins); + PR_RegisterBuiltins (pr, secure_builtins, res); } else { - PR_RegisterBuiltins (pr, insecure_builtins); + PR_RegisterBuiltins (pr, insecure_builtins, res); } - PR_RegisterBuiltins (pr, builtins); + PR_RegisterBuiltins (pr, builtins, res); } diff --git a/libs/ruamoko/rua_qfs.c b/libs/ruamoko/rua_qfs.c index 9c34d6abe..8f36c4528 100644 --- a/libs/ruamoko/rua_qfs.c +++ b/libs/ruamoko/rua_qfs.c @@ -206,5 +206,5 @@ static builtin_t builtins[] = { void RUA_QFS_Init (progs_t *pr, int secure) { - PR_RegisterBuiltins (pr, builtins); + PR_RegisterBuiltins (pr, builtins, 0); } diff --git a/libs/ruamoko/rua_runtime.c b/libs/ruamoko/rua_runtime.c index 54b67b205..5a1c906ad 100644 --- a/libs/ruamoko/rua_runtime.c +++ b/libs/ruamoko/rua_runtime.c @@ -80,5 +80,5 @@ static builtin_t builtins[] = { void RUA_Runtime_Init (progs_t *pr, int secure) { - PR_RegisterBuiltins (pr, builtins); + PR_RegisterBuiltins (pr, builtins, 0); } diff --git a/libs/ruamoko/rua_script.c b/libs/ruamoko/rua_script.c index 4a90a99e3..8cafdb387 100644 --- a/libs/ruamoko/rua_script.c +++ b/libs/ruamoko/rua_script.c @@ -207,6 +207,5 @@ RUA_Script_Init (progs_t *pr, int secure) script_resources_t *res = calloc (1, sizeof (script_resources_t)); PR_Resources_Register (pr, "Script", res, bi_script_clear); - - PR_RegisterBuiltins (pr, builtins); + PR_RegisterBuiltins (pr, builtins, res); } diff --git a/libs/ruamoko/rua_set.c b/libs/ruamoko/rua_set.c index 647f7716b..b1b3a7dee 100644 --- a/libs/ruamoko/rua_set.c +++ b/libs/ruamoko/rua_set.c @@ -747,5 +747,5 @@ RUA_Set_Init (progs_t *pr, int secure) res->sets = 0; PR_Resources_Register (pr, "Set", res, res_set_clear); - PR_RegisterBuiltins (pr, builtins); + PR_RegisterBuiltins (pr, builtins, res); } diff --git a/libs/ruamoko/rua_stdlib.c b/libs/ruamoko/rua_stdlib.c index 19dd7bc7e..fa8489d1c 100644 --- a/libs/ruamoko/rua_stdlib.c +++ b/libs/ruamoko/rua_stdlib.c @@ -171,5 +171,5 @@ static builtin_t builtins[] = { void RUA_Stdlib_Init (progs_t *pr, int secure) { - PR_RegisterBuiltins (pr, builtins); + PR_RegisterBuiltins (pr, builtins, 0); } diff --git a/libs/ruamoko/rua_string.c b/libs/ruamoko/rua_string.c index 21006ac42..e01ab9716 100644 --- a/libs/ruamoko/rua_string.c +++ b/libs/ruamoko/rua_string.c @@ -309,5 +309,5 @@ static builtin_t builtins[] = { void RUA_String_Init (progs_t *pr, int secure) { - PR_RegisterBuiltins (pr, builtins); + PR_RegisterBuiltins (pr, builtins, 0); } diff --git a/libs/video/renderer/r_progs.c b/libs/video/renderer/r_progs.c index 2fbaa6e28..87cd3e513 100644 --- a/libs/video/renderer/r_progs.c +++ b/libs/video/renderer/r_progs.c @@ -353,5 +353,5 @@ R_Progs_Init (progs_t *pr) pr->hashlink_freelist); PR_Resources_Register (pr, "Draw", res, bi_draw_clear); - PR_RegisterBuiltins (pr, builtins); + PR_RegisterBuiltins (pr, builtins, res); } diff --git a/nq/source/sv_pr_cmds.c b/nq/source/sv_pr_cmds.c index 5c98aa5d9..38755c8f9 100644 --- a/nq/source/sv_pr_cmds.c +++ b/nq/source/sv_pr_cmds.c @@ -1564,5 +1564,5 @@ SV_PR_Cmds_Init () PR_Cmds_Init (&sv_pr_state); - PR_RegisterBuiltins (&sv_pr_state, builtins); + PR_RegisterBuiltins (&sv_pr_state, builtins, 0); } diff --git a/qw/source/sv_pr_cmds.c b/qw/source/sv_pr_cmds.c index fd4841d7a..9e3ffac8f 100644 --- a/qw/source/sv_pr_cmds.c +++ b/qw/source/sv_pr_cmds.c @@ -2070,5 +2070,5 @@ SV_PR_Cmds_Init () bi = PR_FindBuiltin (&sv_pr_state, "cvar"); bi->proc = PF_sv_cvar; - PR_RegisterBuiltins (&sv_pr_state, builtins); + PR_RegisterBuiltins (&sv_pr_state, builtins, 0); } diff --git a/qw/source/sv_pr_cpqw.c b/qw/source/sv_pr_cpqw.c index 160fb090c..32e82e7b9 100644 --- a/qw/source/sv_pr_cpqw.c +++ b/qw/source/sv_pr_cpqw.c @@ -855,6 +855,6 @@ cpqw_load (progs_t *pr) void SV_PR_CPQW_Init (progs_t *pr) { - PR_RegisterBuiltins (pr, builtins); + PR_RegisterBuiltins (pr, builtins, 0); PR_AddLoadFunc (pr, cpqw_load); } diff --git a/qw/source/sv_pr_qwe.c b/qw/source/sv_pr_qwe.c index 521bb721d..c67f695fc 100644 --- a/qw/source/sv_pr_qwe.c +++ b/qw/source/sv_pr_qwe.c @@ -589,6 +589,6 @@ qwe_load (progs_t *pr) void SV_PR_QWE_Init (progs_t *pr) { - PR_RegisterBuiltins (pr, builtins); + PR_RegisterBuiltins (pr, builtins, 0); PR_AddLoadFunc (pr, qwe_load); } diff --git a/qw/source/sv_user.c b/qw/source/sv_user.c index 1160f673a..126c84ef8 100644 --- a/qw/source/sv_user.c +++ b/qw/source/sv_user.c @@ -2012,7 +2012,7 @@ SV_UserInit (void) { ucmd_table = Hash_NewTable (251, ucmds_getkey, ucmds_free, 0, 0); Hash_SetHashCompare (ucmd_table, ucmd_get_hash, ucmd_compare); - PR_RegisterBuiltins (&sv_pr_state, builtins); + PR_RegisterBuiltins (&sv_pr_state, builtins, 0); cl_rollspeed = Cvar_Get ("cl_rollspeed", "200", CVAR_NONE, NULL, "How quickly a player straightens out after " "strafing"); diff --git a/ruamoko/qwaq/builtins/curses.c b/ruamoko/qwaq/builtins/curses.c index a3f83fceb..dfd3d1e40 100644 --- a/ruamoko/qwaq/builtins/curses.c +++ b/ruamoko/qwaq/builtins/curses.c @@ -1957,6 +1957,6 @@ BI_Curses_Init (progs_t *pr) qwaq_init_pipe (&res->results); PR_Resources_Register (pr, "curses", res, bi_curses_clear); - PR_RegisterBuiltins (pr, builtins); + PR_RegisterBuiltins (pr, builtins, res); Sys_RegisterShutdown (bi_shutdown, pr); } diff --git a/ruamoko/qwaq/builtins/debug.c b/ruamoko/qwaq/builtins/debug.c index 98c7294c7..c9da1e923 100644 --- a/ruamoko/qwaq/builtins/debug.c +++ b/ruamoko/qwaq/builtins/debug.c @@ -688,7 +688,7 @@ QWAQ_Debug_Init (progs_t *pr) PR_AddLoadFunc (pr, qwaq_debug_load); PR_Resources_Register (pr, "qwaq-debug", debug, qwaq_debug_clear); - PR_RegisterBuiltins (pr, builtins); + PR_RegisterBuiltins (pr, builtins, debug); } void diff --git a/ruamoko/qwaq/builtins/editbuffer.c b/ruamoko/qwaq/builtins/editbuffer.c index db3237a2e..3a8fbdf3a 100644 --- a/ruamoko/qwaq/builtins/editbuffer.c +++ b/ruamoko/qwaq/builtins/editbuffer.c @@ -1066,5 +1066,5 @@ QWAQ_EditBuffer_Init (progs_t *pr) res->pr = pr; PR_Resources_Register (pr, "qwaq-editbuffer", res, qwaq_ebresources_clear); - PR_RegisterBuiltins (pr, builtins); + PR_RegisterBuiltins (pr, builtins, res); } diff --git a/ruamoko/qwaq/builtins/graphics.c b/ruamoko/qwaq/builtins/graphics.c index cd523b20a..746332cc4 100644 --- a/ruamoko/qwaq/builtins/graphics.c +++ b/ruamoko/qwaq/builtins/graphics.c @@ -151,7 +151,7 @@ BI_Graphics_Init (progs_t *pr) qwaq_thread_t *thread = PR_Resources_Find (pr, "qwaq_thread"); byte *basepal, *colormap; - PR_RegisterBuiltins (pr, builtins); + PR_RegisterBuiltins (pr, builtins, 0); QFS_Init (thread->hunk, "nq"); PI_Init (); diff --git a/ruamoko/qwaq/builtins/main.c b/ruamoko/qwaq/builtins/main.c index 955195b65..0215ced3f 100644 --- a/ruamoko/qwaq/builtins/main.c +++ b/ruamoko/qwaq/builtins/main.c @@ -184,7 +184,7 @@ static builtin_t common_builtins[] = { static void common_builtins_init (progs_t *pr) { - PR_RegisterBuiltins (pr, common_builtins); + PR_RegisterBuiltins (pr, common_builtins, 0); } static void diff --git a/ruamoko/qwaq/builtins/term-input.c b/ruamoko/qwaq/builtins/term-input.c index e8d136855..8b34a22e5 100644 --- a/ruamoko/qwaq/builtins/term-input.c +++ b/ruamoko/qwaq/builtins/term-input.c @@ -916,6 +916,6 @@ BI_TermInput_Init (progs_t *pr) qwaq_init_cond (&res->events.cond); PR_Resources_Register (pr, "input", res, bi_input_clear); - PR_RegisterBuiltins (pr, builtins); + PR_RegisterBuiltins (pr, builtins, res); Sys_RegisterShutdown (bi_input_shutdown, pr); } diff --git a/tools/qfcc/test/test-bi.c b/tools/qfcc/test/test-bi.c index 58b1e28d2..5e6a093ef 100644 --- a/tools/qfcc/test/test-bi.c +++ b/tools/qfcc/test/test-bi.c @@ -110,5 +110,5 @@ static builtin_t builtins[] = { void BI_Init (progs_t *pr) { - PR_RegisterBuiltins (pr, builtins); + PR_RegisterBuiltins (pr, builtins, 0); }