summaryrefslogtreecommitdiffhomepage
path: root/vm.c
diff options
context:
space:
mode:
authorJo-Philipp Wich <jo@mein.io>2022-07-21 10:49:23 +0200
committerJo-Philipp Wich <jo@mein.io>2022-07-30 00:41:56 +0200
commit3c168b5184ebd217ea276bf374d28bbf937681fd (patch)
tree00da23f6c0500518c4bebc73e9b85566ef75f052 /vm.c
parentd85bc716df9b97ac6093afa0bdf77c1b6b0cf6aa (diff)
vm, cli: move search path into global configuration structure
The upcoming compile-time module support will require the configured extension search path in the compiler as well, so move it to the already shared uc_parse_config_t structure and add the appropriate utility functions to initialize, append and free the search path vector. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Diffstat (limited to 'vm.c')
-rw-r--r--vm.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/vm.c b/vm.c
index 1ef3bdd..ad5cd44 100644
--- a/vm.c
+++ b/vm.c
@@ -111,7 +111,6 @@ uc_vm_reset_callframes(uc_vm_t *vm)
static uc_value_t *
uc_vm_alloc_global_scope(uc_vm_t *vm)
{
- const char *path[] = { LIB_SEARCH_PATH };
uc_value_t *scope, *arr;
size_t i;
@@ -120,8 +119,8 @@ uc_vm_alloc_global_scope(uc_vm_t *vm)
/* build default require() search path */
arr = ucv_array_new(vm);
- for (i = 0; i < ARRAY_SIZE(path); i++)
- ucv_array_push(arr, ucv_string_new(path[i]));
+ for (i = 0; i < vm->config->module_search_path.count; i++)
+ ucv_array_push(arr, ucv_string_new(vm->config->module_search_path.entries[i]));
/* register module related constants */
ucv_object_add(scope, "REQUIRE_SEARCH_PATH", arr);
@@ -147,7 +146,7 @@ void uc_vm_init(uc_vm_t *vm, uc_parse_config_t *config)
vm->exception.type = EXCEPTION_NONE;
vm->exception.message = NULL;
- vm->config = config;
+ vm->config = config ? config : &uc_default_parse_config;
vm->open_upvals = NULL;