Add a function list that's used for searching functions by name.

This commit is contained in:
2018-04-26 19:16:20 -07:00
parent c46b82584d
commit 785a362f97
5 changed files with 66 additions and 1 deletions

14
src/function_list.c Normal file
View 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);
}

View File

@@ -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;
}