MCPcopy Create free account
hub / github.com/WasmEdge/WasmEdge / runArrayNewOp

Method runArrayNewOp

lib/executor/engine/refInstr.cpp:155–169  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

153}
154
155Expect<void> Executor::runArrayNewOp(Runtime::StackManager &StackMgr,
156 const uint32_t TypeIdx,
157 const uint32_t InitCnt,
158 uint32_t Length) const noexcept {
159 assuming(InitCnt == 0 || InitCnt == 1 || InitCnt == Length);
160 if (InitCnt == 0) {
161 StackMgr.push(*arrayNew(StackMgr, TypeIdx, Length));
162 } else if (InitCnt == 1) {
163 StackMgr.getTop().emplace<RefVariant>(
164 *arrayNew(StackMgr, TypeIdx, Length, {StackMgr.getTop()}));
165 } else {
166 StackMgr.push(*arrayNew(StackMgr, TypeIdx, Length, StackMgr.pop(Length)));
167 }
168 return {};
169}
170
171Expect<void>
172Executor::runArrayNewDataOp(Runtime::StackManager &StackMgr,

Callers

nothing calls this directly

Calls 2

pushMethod · 0.80
popMethod · 0.80

Tested by

no test coverage detected