diff options
author | Elias Fleckenstein <eliasfleckenstein@web.de> | 2021-12-30 21:09:41 +0100 |
---|---|---|
committer | Elias Fleckenstein <eliasfleckenstein@web.de> | 2021-12-30 21:09:41 +0100 |
commit | a454f9e1f2b09d4799e8ac3c4a4eb62bbba7b823 (patch) | |
tree | 99c17c5dc928143645dee9c57d346f8f8c3e3607 /src/load.c | |
parent | 8b1de3b34222ec6d8e6c99f7897b9cbd5fbba264 (diff) | |
download | uwu-lang-a454f9e1f2b09d4799e8ac3c4a4eb62bbba7b823.tar.xz |
common/ refactoring
Diffstat (limited to 'src/load.c')
-rw-r--r-- | src/load.c | 23 |
1 files changed, 4 insertions, 19 deletions
@@ -6,6 +6,8 @@ #include <dlfcn.h> #include "common/err.h" #include "common/str.h" +#include "common/file.h" +#include "common/dl.h" #include "load.h" #include "parse.h" @@ -33,18 +35,6 @@ static char *dirname_wrapper(const char *name) return wrap_name_func(name, &dirname); } -static bool file_exists(const char *filename) -{ - FILE *f = fopen(filename, "r"); - - if (f) { - fclose(f); - return true; - } - - return false; -} - // type definitions typedef struct @@ -148,9 +138,7 @@ static Module *require_module(LoadState *state, char *module_path) state->program.libraries = realloc(state->program.libraries, sizeof(void *) * ++state->program.num_libraries); state->program.libraries[state->program.num_libraries - 1] = module->handle.lib = dlopen(filename, RTLD_LAZY); - char *err = dlerror(); - if (err) - error("library error: %s\n", err); + check_dlerror(); } return module; @@ -293,10 +281,7 @@ static void load_functions(LoadState *state, Module *module) char *symbol = asprintf_wrapper("uwu_%s", link->name); link->ref->value.native = dlsym(module->handle.lib, symbol); - char *err = dlerror(); - if (err) - error("library error: %s\n", err); - + check_dlerror(); free(symbol); } } |