소스 검색

Drop declarative elements on module instantiation (#3922)

James Ring 1 년 전
부모
커밋
00c2aa10a8
2개의 변경된 파일5개의 추가작업 그리고 2개의 파일을 삭제
  1. 3 1
      core/iwasm/aot/aot_runtime.c
  2. 2 1
      core/iwasm/interpreter/wasm_runtime.c

+ 3 - 1
core/iwasm/aot/aot_runtime.c

@@ -1905,7 +1905,9 @@ aot_instantiate(AOTModule *module, AOTModuleInstance *parent,
             goto fail;
         }
         for (i = 0; i < module->table_init_data_count; i++) {
-            if (wasm_elem_is_active(module->table_init_data_list[i]->mode))
+            if (wasm_elem_is_active(module->table_init_data_list[i]->mode)
+                || wasm_elem_is_declarative(
+                    module->table_init_data_list[i]->mode))
                 bh_bitmap_set_bit(common->elem_dropped, i);
         }
     }

+ 2 - 1
core/iwasm/interpreter/wasm_runtime.c

@@ -2467,7 +2467,8 @@ wasm_instantiate(WASMModule *module, WASMModuleInstance *parent,
             goto fail;
         }
         for (i = 0; i < module->table_seg_count; i++) {
-            if (wasm_elem_is_active(module->table_segments[i].mode))
+            if (wasm_elem_is_active(module->table_segments[i].mode)
+                || wasm_elem_is_declarative(module->table_segments[i].mode))
                 bh_bitmap_set_bit(module_inst->e->common.elem_dropped, i);
         }
     }