diff --git a/core/iwasm/interpreter/wasm_loader.c b/core/iwasm/interpreter/wasm_loader.c index b770a771a..4098d1afb 100644 --- a/core/iwasm/interpreter/wasm_loader.c +++ b/core/iwasm/interpreter/wasm_loader.c @@ -8116,10 +8116,11 @@ re_scan: bool func_declared = false; uint32 j; - /* Check whether the function is declared in table segs */ + /* Check whether the function is declared in table segs, + note that it doesn't matter whether the table seg's mode + is passive, active or declarative. */ for (i = 0; i < module->table_seg_count; i++, table_seg++) { - if (table_seg->elem_type == VALUE_TYPE_FUNCREF - && wasm_elem_is_declarative(table_seg->mode)) { + if (table_seg->elem_type == VALUE_TYPE_FUNCREF) { for (j = 0; j < table_seg->function_count; j++) { if (table_seg->func_indexes[j] == func_idx) { func_declared = true; diff --git a/core/iwasm/interpreter/wasm_mini_loader.c b/core/iwasm/interpreter/wasm_mini_loader.c index 6a63f516b..8262de828 100644 --- a/core/iwasm/interpreter/wasm_mini_loader.c +++ b/core/iwasm/interpreter/wasm_mini_loader.c @@ -6411,10 +6411,11 @@ re_scan: bool func_declared = false; uint32 j; - /* Check whether the function is declared in table segs */ + /* Check whether the function is declared in table segs, + note that it doesn't matter whether the table seg's mode + is passive, active or declarative. */ for (i = 0; i < module->table_seg_count; i++, table_seg++) { - if (table_seg->elem_type == VALUE_TYPE_FUNCREF - && wasm_elem_is_declarative(table_seg->mode)) { + if (table_seg->elem_type == VALUE_TYPE_FUNCREF) { for (j = 0; j < table_seg->function_count; j++) { if (table_seg->func_indexes[j] == func_idx) { func_declared = true;