diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/load.c | 23 | ||||
-rw-r--r-- | src/run.c | 5 |
2 files changed, 6 insertions, 22 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); } } @@ -2,6 +2,7 @@ #include <stdlib.h> #include <stdio.h> #include "common/err.h" +#include "common/dl.h" #include "load.h" #include "run.h" @@ -29,9 +30,7 @@ void run_module(const char *progname, const char *modname, size_t num_args, char char *(*uwuvm_print_value )(UwUVMValue ) = dlsym(program.api_library, "uwuvm_print_value" ); void (*uwuvm_delet_value )(UwUVMValue ) = dlsym(program.api_library, "uwuvm_delet_value" ); - char *err = dlerror(); - if (err) - error("library error: %s\n", err); + check_dlerror(); UwUVMExpression arg_expressions[num_args]; |