diff options
Diffstat (limited to 'src/validator.cc')
-rw-r--r-- | src/validator.cc | 25 |
1 files changed, 12 insertions, 13 deletions
diff --git a/src/validator.cc b/src/validator.cc index b559e49d..d2062f8e 100644 --- a/src/validator.cc +++ b/src/validator.cc @@ -687,8 +687,8 @@ static void check_import(Context* ctx, const Import* import) { switch (import->kind) { case ExternalKind::Func: - if (decl_has_func_type(&import->func.decl)) - check_func_type_var(ctx, &import->func.decl.type_var, nullptr); + if (decl_has_func_type(&import->func->decl)) + check_func_type_var(ctx, &import->func->decl.type_var, nullptr); break; case ExternalKind::Table: check_table(ctx, loc, &import->table); @@ -733,21 +733,20 @@ static void check_export(Context* ctx, const Export* export_) { } } -static void on_duplicate_binding(BindingHashEntry* a, - BindingHashEntry* b, +static void on_duplicate_binding(const BindingHash::value_type& a, + const BindingHash::value_type& b, void* user_data) { Context* ctx = static_cast<Context*>(user_data); /* choose the location that is later in the file */ - Location* a_loc = &a->binding.loc; - Location* b_loc = &b->binding.loc; - Location* loc = a_loc->line > b_loc->line ? a_loc : b_loc; - print_error(ctx, loc, "redefinition of export \"" PRIstringslice "\"", - WABT_PRINTF_STRING_SLICE_ARG(a->binding.name)); + const Location& a_loc = a.second.loc; + const Location& b_loc = b.second.loc; + const Location& loc = a_loc.line > b_loc.line ? a_loc : b_loc; + print_error(ctx, &loc, "redefinition of export \"%s\"", a.first.c_str()); } static void check_duplicate_export_bindings(Context* ctx, const Module* module) { - find_duplicate_bindings(&module->export_bindings, on_duplicate_binding, ctx); + module->export_bindings.find_duplicates(on_duplicate_binding, ctx); } static void check_module(Context* ctx, const Module* module) { @@ -762,7 +761,7 @@ static void check_module(Context* ctx, const Module* module) { for (ModuleField* field = module->first_field; field; field = field->next) { switch (field->type) { case ModuleFieldType::Func: - check_func(ctx, &field->loc, &field->func); + check_func(ctx, &field->loc, field->func); break; case ModuleFieldType::Global: @@ -771,7 +770,7 @@ static void check_module(Context* ctx, const Module* module) { break; case ModuleFieldType::Import: - check_import(ctx, &field->loc, &field->import); + check_import(ctx, &field->loc, field->import); break; case ModuleFieldType::Export: @@ -921,7 +920,7 @@ static ActionResult check_action(Context* ctx, const Action* action) { static void check_command(Context* ctx, const Command* command) { switch (command->type) { case CommandType::Module: - check_module(ctx, &command->module); + check_module(ctx, command->module); break; case CommandType::Action: |