diff options
-rw-r--r-- | lib.c | 2 | ||||
-rw-r--r-- | lib.h | 20 | ||||
-rw-r--r-- | lib/fs.c | 2 | ||||
-rw-r--r-- | lib/math.c | 2 | ||||
-rw-r--r-- | lib/ubus.c | 2 | ||||
-rw-r--r-- | lib/uci.c | 2 |
6 files changed, 18 insertions, 12 deletions
@@ -2945,7 +2945,7 @@ const uc_cfunction_list uc_stdlib_functions[] = { void uc_load_stdlib(uc_value_t *scope) { - uc_add_proto_functions(scope, uc_stdlib_functions); + uc_add_functions(scope, uc_stdlib_functions); } uc_value_t * @@ -111,17 +111,23 @@ _uc_declare_type(uc_vm *vm, const char *name, const uc_cfunction_list *list, siz _uc_declare_type(vm, name, functions, ARRAY_SIZE(functions), freefn) -/* prototype helper */ +/* function helper */ -static inline void -_uc_add_proto_functions(uc_value_t *proto, const uc_cfunction_list *list, size_t len) +#define uc_add_function(object, name, function) \ + ucv_object_add(object, name, ucv_cfunction_new(name, function)) + +static inline bool +_uc_add_functions(uc_value_t *object, const uc_cfunction_list *list, size_t len) { + bool rv = true; + while (len-- > 0) - ucv_object_add(proto, list[len].name, - ucv_cfunction_new(list[len].name, list[len].func)); + rv &= uc_add_function(object, list[len].name, list[len].func); + + return rv; } -#define uc_add_proto_functions(proto, functions) \ - _uc_add_proto_functions(proto, functions, ARRAY_SIZE(functions)) +#define uc_add_functions(object, functions) \ + _uc_add_functions(object, functions, ARRAY_SIZE(functions)) #endif /* __LIB_H_ */ @@ -906,7 +906,7 @@ static void close_dir(void *ud) void uc_module_init(uc_vm *vm, uc_value_t *scope) { - uc_add_proto_functions(scope, global_fns); + uc_add_functions(scope, global_fns); proc_type = uc_declare_type(vm, "fs.proc", proc_fns, close_proc); file_type = uc_declare_type(vm, "fs.file", file_fns, close_file); @@ -160,5 +160,5 @@ static const uc_cfunction_list math_fns[] = { void uc_module_init(uc_vm *vm, uc_value_t *scope) { - uc_add_proto_functions(scope, math_fns); + uc_add_functions(scope, math_fns); } @@ -322,7 +322,7 @@ static void close_connection(void *ud) { void uc_module_init(uc_vm *vm, uc_value_t *scope) { - uc_add_proto_functions(scope, global_fns); + uc_add_functions(scope, global_fns); conn_type = uc_declare_type(vm, "ubus.connection", conn_fns, close_connection); } @@ -1007,7 +1007,7 @@ static void close_uci(void *ud) { void uc_module_init(uc_vm *vm, uc_value_t *scope) { - uc_add_proto_functions(scope, global_fns); + uc_add_functions(scope, global_fns); cursor_type = uc_declare_type(vm, "uci.cursor", cursor_fns, close_uci); } |