@@ -73,83 +73,6 @@ wasm_loader_find_block_addr(WASMExecEnv *exec_env, BlockAddr *block_addr_cache,
7373 uint8 block_type , uint8 * * p_else_addr ,
7474 uint8 * * p_end_addr );
7575
76- #if WASM_ENABLE_SHARED_HEAP != 0
77-
78- #if WASM_ENABLE_MULTI_MEMORY != 0
79- /* Only enable shared heap for the default memory */
80- #define is_default_memory (memidx == 0)
81- #else
82- #define is_default_memory true
83- #endif
84-
85- #if WASM_ENABLE_MEMORY64 != 0
86- #define get_shared_heap_start_off (shared_heap ) \
87- (is_memory64 ? shared_heap->start_off_mem64 : shared_heap->start_off_mem32)
88- #else
89- #define get_shared_heap_start_off (shared_heap ) shared_heap->start_off_mem32
90- #endif
91-
92- #if UINTPTR_MAX == UINT64_MAX
93- #define update_last_used_shared_heap (shared_heap ) \
94- do { \
95- e->shared_heap_start_off.u64 = get_shared_heap_start_off(shared_heap); \
96- e->shared_heap_end_off.u64 = \
97- e->shared_heap_start_off.u64 - 1 + shared_heap->size; \
98- e->shared_heap_base_addr_adj = \
99- shared_heap->base_addr - e->shared_heap_start_off.u64; \
100- } while (0)
101- #define get_last_used_shared_heap_start_off () e->shared_heap_start_off.u64
102- #define get_last_used_shared_heap_end_off () e->shared_heap_end_off.u64
103- #else
104- #define update_last_used_shared_heap (shared_heap ) \
105- do { \
106- e->shared_heap_start_off.u32[0] = \
107- (uint32)shared_heap->start_off_mem32; \
108- e->shared_heap_end_off.u32[0] = \
109- e->shared_heap_start_off.u32[0] - 1 + shared_heap->size; \
110- e->shared_heap_base_addr_adj = \
111- shared_heap->base_addr - e->shared_heap_start_off.u32[0]; \
112- } while (0)
113- #define get_last_used_shared_heap_start_off () \
114- (uint64) e->shared_heap_start_off.u32[0]
115- #define get_last_used_shared_heap_end_off () \
116- (uint64) e->shared_heap_end_off.u32[0]
117- #endif /* end of UINTPTR_MAX == UINT64_MAX */
118-
119- /* Check whether the app addr in the last visited shared heap, if not, check the
120- * shared heap chain to find which(if any) shared heap the app addr in, and
121- * update the last visited shared heap info if found. */
122- #define app_addr_in_shared_heap (app_addr , bytes ) \
123- (e->shared_heap && is_default_memory \
124- && (app_addr) >= get_last_used_shared_heap_start_off() \
125- && (app_addr) <= get_last_used_shared_heap_end_off() - bytes + 1) \
126- || ({ \
127- bool in_chain = false; \
128- WASMSharedHeap *cur; \
129- uint64 cur_shared_heap_start_off, cur_shared_heap_end_off; \
130- for (cur = e->shared_heap; cur; cur = cur->chain_next) { \
131- cur_shared_heap_start_off = get_shared_heap_start_off(cur); \
132- cur_shared_heap_end_off = \
133- cur_shared_heap_start_off - 1 + cur->size; \
134- if ((app_addr) >= cur_shared_heap_start_off \
135- && (app_addr) <= cur_shared_heap_end_off - bytes + 1) { \
136- update_last_used_shared_heap(cur); \
137- in_chain = true; \
138- break; \
139- } \
140- } \
141- in_chain; \
142- })
143- #define shared_heap_addr_app_to_native (app_addr , native_addr ) \
144- native_addr = e->shared_heap_base_addr_adj + app_addr
145- #define CHECK_SHARED_HEAP_OVERFLOW (app_addr , bytes , native_addr ) \
146- if (app_addr_in_shared_heap(app_addr, bytes)) \
147- shared_heap_addr_app_to_native(app_addr, native_addr); \
148- else
149- #else
150- #define CHECK_SHARED_HEAP_OVERFLOW (app_addr , bytes , native_addr )
151- #endif /* end of WASM_ENABLE_SHARED_HEAP != 0 */
152-
15376#ifdef __cplusplus
15477}
15578#endif
0 commit comments