Skip to content

Commit a2b5659

Browse files
committed
Allocate WasmFunctionInstance behind a TruffleBoundary.
1 parent be9670c commit a2b5659

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

wasm/src/org.graalvm.wasm/src/org/graalvm/wasm/RuntimeState.java

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@
4646
import com.oracle.truffle.api.CallTarget;
4747
import com.oracle.truffle.api.CompilerDirectives;
4848
import com.oracle.truffle.api.CompilerDirectives.CompilationFinal;
49+
import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary;
4950

5051
/**
5152
* Represents the state of a WebAssembly module.
@@ -256,12 +257,18 @@ public WasmFunctionInstance functionInstance(WasmFunction function) {
256257
int functionIndex = function.index();
257258
WasmFunctionInstance functionInstance = functionInstances[functionIndex];
258259
if (functionInstance == null) {
259-
functionInstance = new WasmFunctionInstance(instance(), function, target(functionIndex));
260-
functionInstances[functionIndex] = functionInstance;
260+
functionInstance = allocateFunctionInstance(function, functionIndex);
261261
}
262262
return functionInstance;
263263
}
264264

265+
@TruffleBoundary
266+
private WasmFunctionInstance allocateFunctionInstance(WasmFunction function, int functionIndex) {
267+
WasmFunctionInstance functionInstance = new WasmFunctionInstance(instance(), function, target(functionIndex));
268+
functionInstances[functionIndex] = functionInstance;
269+
return functionInstance;
270+
}
271+
265272
public WasmFunctionInstance functionInstance(int index) {
266273
return functionInstances[index];
267274
}

0 commit comments

Comments
 (0)