diff options
author | Jo-Philipp Wich <jo@mein.io> | 2022-08-06 09:28:37 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-08-06 09:28:37 +0200 |
commit | f1e393873a17571ada80c189fbedef020d89cdad (patch) | |
tree | 935044691733689fbae18879a8bb70bf15672d75 /program.c | |
parent | e55965a3d170f60776ffa2d82b2711d9ea3a0211 (diff) | |
parent | b4a3f6828478f1d831ae11ee4d3dcd82b93407c8 (diff) |
Merge pull request #97 from jow-/module-import-export-fixes
Diffstat (limited to 'program.c')
-rw-r--r-- | program.c | 26 |
1 files changed, 5 insertions, 21 deletions
@@ -228,6 +228,7 @@ enum { UC_FUNCTION_F_HAS_NAME = (1 << 4), UC_FUNCTION_F_HAS_VARDBG = (1 << 5), UC_FUNCTION_F_HAS_OFFSETDBG = (1 << 6), + UC_FUNCTION_F_IS_MODULE = (1 << 7), }; static void @@ -288,6 +289,9 @@ write_function(uc_function_t *func, FILE *file, bool debug) if (func->strict) flags |= UC_FUNCTION_F_IS_STRICT; + if (func->module) + flags |= UC_FUNCTION_F_IS_MODULE; + if (func->chunk.ehranges.count) flags |= UC_FUNCTION_F_HAS_EXCEPTIONS; @@ -780,6 +784,7 @@ read_function(FILE *file, uc_program_t *program, size_t idx, char **errp) func->arrow = (flags & UC_FUNCTION_F_IS_ARROW); func->vararg = (flags & UC_FUNCTION_F_IS_VARARG); func->strict = (flags & UC_FUNCTION_F_IS_STRICT); + func->module = (flags & UC_FUNCTION_F_IS_MODULE); func->nargs = nargs; func->nupvals = nupvals; @@ -846,24 +851,3 @@ uc_program_entry(uc_program_t *program) return (uc_function_t *)program->functions.prev; } - -ssize_t -uc_program_export_lookup(uc_program_t *program, uc_source_t *source, uc_value_t *name) -{ - size_t i, off; - ssize_t slot; - - for (i = 0, off = 0; i < program->sources.count; i++) { - if (program->sources.entries[i] != source) { - off += program->sources.entries[i]->exports.count; - continue; - } - - slot = uc_source_export_lookup(source, name); - - if (slot > -1) - return off + slot; - } - - return -1; -} |