From 1d75abd35dedc21eccac253c4a656b1617867dc6 Mon Sep 17 00:00:00 2001 From: Andreas Woess Date: Tue, 1 Oct 2024 01:26:29 +0200 Subject: [PATCH] Fix compilation error due to TypedArray not being PE-constant. --- .../truffle/js/nodes/wasm/ExportByteSourceNode.java | 2 +- .../truffle/js/runtime/builtins/JSArrayBufferView.java | 8 ++++---- .../src/com/oracle/truffle/trufflenode/GraalJSAccess.java | 2 +- .../truffle/trufflenode/serialization/Deserializer.java | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/graal-js/src/com.oracle.truffle.js/src/com/oracle/truffle/js/nodes/wasm/ExportByteSourceNode.java b/graal-js/src/com.oracle.truffle.js/src/com/oracle/truffle/js/nodes/wasm/ExportByteSourceNode.java index 4f4b839adcc..3e054ae3f85 100644 --- a/graal-js/src/com.oracle.truffle.js/src/com/oracle/truffle/js/nodes/wasm/ExportByteSourceNode.java +++ b/graal-js/src/com.oracle.truffle.js/src/com/oracle/truffle/js/nodes/wasm/ExportByteSourceNode.java @@ -127,7 +127,7 @@ private Object exportBuffer(JSArrayBufferObject arrayBuffer, int offset, int len bufferType = TypedArray.BUFFER_TYPE_SHARED; } TypedArray arrayType = TypedArrayFactory.Uint8Array.createArrayType(bufferType, (offset != 0), true); - JSTypedArrayObject array = JSArrayBufferView.createArrayBufferView(context, realm, buffer, arrayType, offset, length); + JSTypedArrayObject array = JSArrayBufferView.createArrayBufferView(context, realm, buffer, TypedArrayFactory.Uint8Array, arrayType, offset, length); return new InteropBufferView(buffer, offset, length, array); } diff --git a/graal-js/src/com.oracle.truffle.js/src/com/oracle/truffle/js/runtime/builtins/JSArrayBufferView.java b/graal-js/src/com.oracle.truffle.js/src/com/oracle/truffle/js/runtime/builtins/JSArrayBufferView.java index f24db569c76..3053b857e9f 100644 --- a/graal-js/src/com.oracle.truffle.js/src/com/oracle/truffle/js/runtime/builtins/JSArrayBufferView.java +++ b/graal-js/src/com.oracle.truffle.js/src/com/oracle/truffle/js/runtime/builtins/JSArrayBufferView.java @@ -297,13 +297,13 @@ private static boolean hasNumericIndex(JSDynamicObject thisObj, Object numericIn return d < JSArrayBufferView.typedArrayGetLength(thisObj); } - public static JSTypedArrayObject createArrayBufferView(JSContext context, JSRealm realm, JSArrayBufferObject arrayBuffer, TypedArray arrayType, int offset, int length) { - CompilerAsserts.partialEvaluationConstant(arrayType); - assert JSArrayBuffer.isJSAbstractBuffer(arrayBuffer); + public static JSTypedArrayObject createArrayBufferView(JSContext context, JSRealm realm, JSArrayBufferObject arrayBuffer, + TypedArrayFactory typedArrayFactory, TypedArray arrayType, int offset, int length) { + CompilerAsserts.partialEvaluationConstant(typedArrayFactory); if (!context.getTypedArrayNotDetachedAssumption().isValid() && JSArrayBuffer.isDetachedBuffer(arrayBuffer)) { throw Errors.createTypeErrorDetachedBuffer(); } - JSObjectFactory objectFactory = context.getArrayBufferViewFactory(arrayType.getFactory()); + JSObjectFactory objectFactory = context.getArrayBufferViewFactory(typedArrayFactory); return createArrayBufferView(objectFactory, realm, arrayBuffer, arrayType, offset, length); } diff --git a/graal-nodejs/mx.graal-nodejs/com.oracle.truffle.trufflenode/src/com/oracle/truffle/trufflenode/GraalJSAccess.java b/graal-nodejs/mx.graal-nodejs/com.oracle.truffle.trufflenode/src/com/oracle/truffle/trufflenode/GraalJSAccess.java index 11f7aa3106d..d9dc6215da6 100644 --- a/graal-nodejs/mx.graal-nodejs/com.oracle.truffle.trufflenode/src/com/oracle/truffle/trufflenode/GraalJSAccess.java +++ b/graal-nodejs/mx.graal-nodejs/com.oracle.truffle.trufflenode/src/com/oracle/truffle/trufflenode/GraalJSAccess.java @@ -1493,7 +1493,7 @@ private Object typedArrayNew(Object arrayBuffer, int offset, int length, TypedAr if (detached) { dynamicObject = JSArrayBuffer.createDirectArrayBuffer(context, realm, 0); } - JSDynamicObject result = JSArrayBufferView.createArrayBufferView(context, realm, dynamicObject, arrayType, offset, length); + JSDynamicObject result = JSArrayBufferView.createArrayBufferView(context, realm, dynamicObject, factory, arrayType, offset, length); if (detached) { JSArrayBuffer.detachArrayBuffer(dynamicObject); } diff --git a/graal-nodejs/mx.graal-nodejs/com.oracle.truffle.trufflenode/src/com/oracle/truffle/trufflenode/serialization/Deserializer.java b/graal-nodejs/mx.graal-nodejs/com.oracle.truffle.trufflenode/src/com/oracle/truffle/trufflenode/serialization/Deserializer.java index f66256275b0..8d92e7cd5d3 100644 --- a/graal-nodejs/mx.graal-nodejs/com.oracle.truffle.trufflenode/src/com/oracle/truffle/trufflenode/serialization/Deserializer.java +++ b/graal-nodejs/mx.graal-nodejs/com.oracle.truffle.trufflenode/src/com/oracle/truffle/trufflenode/serialization/Deserializer.java @@ -470,7 +470,7 @@ private JSDynamicObject readJSArrayBufferView(JSContext context, JSRealm realm, TypedArrayFactory factory = tag.getFactory(); TypedArray array = factory.createArrayType(TypedArray.BUFFER_TYPE_DIRECT, offset != 0, true); int length = byteLength / factory.getBytesPerElement(); - view = JSArrayBufferView.createArrayBufferView(context, realm, arrayBuffer, array, offset, length); + view = JSArrayBufferView.createArrayBufferView(context, realm, arrayBuffer, factory, array, offset, length); } return assignId(view); }