Skip to content

Commit 3c79e4f

Browse files
PosixPerfMemoryProvider: use correct DirectByteBuffer constructor
1 parent eaeb3ec commit 3c79e4f

File tree

1 file changed

+6
-1
lines changed

1 file changed

+6
-1
lines changed

substratevm/src/com.oracle.svm.core.posix/src/com/oracle/svm/core/posix/jvmstat/PosixPerfMemoryProvider.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@
4242
import java.nio.ByteBuffer;
4343

4444
import org.graalvm.compiler.core.common.NumUtil;
45+
import org.graalvm.compiler.serviceprovider.JavaVersionUtil;
4546
import org.graalvm.nativeimage.ImageSingletons;
4647
import org.graalvm.nativeimage.Platform;
4748
import org.graalvm.nativeimage.Platforms;
@@ -147,7 +148,11 @@ public ByteBuffer create() {
147148

148149
/* Clear the shared memory region. */
149150
LibC.memset(mapAddress, WordFactory.signed(0), WordFactory.unsigned(size));
150-
return SubstrateUtil.cast(new Target_java_nio_DirectByteBuffer(mapAddress.rawValue(), size), ByteBuffer.class);
151+
if (JavaVersionUtil.JAVA_SPEC >= 21) {
152+
return SubstrateUtil.cast(new Target_java_nio_DirectByteBuffer(mapAddress.rawValue(), (long) size), ByteBuffer.class);
153+
} else {
154+
return SubstrateUtil.cast(new Target_java_nio_DirectByteBuffer(mapAddress.rawValue(), size), ByteBuffer.class);
155+
}
151156
}
152157

153158
private static String getUserName(int uid) {

0 commit comments

Comments
 (0)