From 970942b41aa603672e7589ecf3dbedf480b25a62 Mon Sep 17 00:00:00 2001 From: P. J. McDermott Date: Tue, 25 Aug 2015 05:22:44 -0400 Subject: Save pointer to namespace struct in bindings TU --- diff --git a/src/scripting/bindings.c b/src/scripting/bindings.c index 757a0c0..1edc1e3 100644 --- a/src/scripting/bindings.c +++ b/src/scripting/bindings.c @@ -20,8 +20,10 @@ #include "ffi.h" #include "bindings.h" +static struct ffi_namespace *ns; + void bindings_init(void) { - ffi_add_namespace(NULL, "bouken"); + ns = ffi_add_namespace(NULL, "bouken"); } diff --git a/src/scripting/ffi.c b/src/scripting/ffi.c index 9632893..6457f73 100644 --- a/src/scripting/ffi.c +++ b/src/scripting/ffi.c @@ -42,7 +42,7 @@ static int call_arg_index; static void ffi_register_functions_in_namespace(lua_State *l, struct ffi_namespace *parent); -void +struct ffi_namespace * ffi_add_namespace(struct ffi_namespace *parent, const char *name) { struct ffi_namespace *new_ns; @@ -54,7 +54,7 @@ ffi_add_namespace(struct ffi_namespace *parent, const char *name) new_ns = malloc(sizeof(*new_ns)); if (new_ns == NULL) { err(1, "Failed to allocate FFI namespace \"%s\"", name); - return; + return NULL; } new_ns->name = strdup(name); new_ns->ns_head = NULL; @@ -69,6 +69,8 @@ ffi_add_namespace(struct ffi_namespace *parent, const char *name) parent->ns_tail->next = new_ns; } parent->ns_tail = new_ns; + + return new_ns; } void diff --git a/src/scripting/ffi.h b/src/scripting/ffi.h index b635d6f..471cd16 100644 --- a/src/scripting/ffi.h +++ b/src/scripting/ffi.h @@ -35,7 +35,8 @@ struct ffi_namespace { struct ffi_namespace *next; }; -void ffi_add_namespace(struct ffi_namespace *parent, const char *name); +struct ffi_namespace *ffi_add_namespace(struct ffi_namespace *parent, + const char *name); void ffi_add_function(struct ffi_namespace *parent, const char *name, void (*func)(void)); void ffi_register_functions(struct script *script); -- cgit v0.9.1