Add a function list that's used for searching functions by name.
This commit is contained in:
14
src/function_list.c
Normal file
14
src/function_list.c
Normal file
@@ -0,0 +1,14 @@
|
||||
#include "function_list.h"
|
||||
|
||||
libab_result libab_function_list_init(libab_function_list* list) {
|
||||
return libab_ref_vec_init(&list->functions);
|
||||
}
|
||||
|
||||
libab_result libab_function_list_insert(libab_function_list* list,
|
||||
libab_ref* function) {
|
||||
return libab_ref_vec_insert(&list->functions, function);
|
||||
}
|
||||
|
||||
void libab_function_list_free(libab_function_list* list) {
|
||||
libab_ref_vec_free(&list->functions);
|
||||
}
|
||||
26
src/util.c
26
src/util.c
@@ -174,3 +174,29 @@ libab_result libab_create_value(libab_ref* into, void* data, libab_ref* type) {
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
libab_result libab_create_function_list(libab_ref* into, libab_ref* type) {
|
||||
libab_function_list* list;
|
||||
libab_result result = LIBAB_SUCCESS;
|
||||
|
||||
if((list = malloc(sizeof(*list)))) {
|
||||
result = libab_function_list_init(list);
|
||||
} else {
|
||||
result = LIBAB_MALLOC;
|
||||
}
|
||||
|
||||
if(result == LIBAB_SUCCESS) {
|
||||
result = libab_create_value(into, list, type);
|
||||
if(result != LIBAB_SUCCESS) {
|
||||
libab_function_list_free(list);
|
||||
libab_ref_free(into);
|
||||
}
|
||||
}
|
||||
|
||||
if(result != LIBAB_SUCCESS) {
|
||||
free(list);
|
||||
libab_ref_null(into);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user