src/jdk.internal.vm.compiler/share/classes/org.graalvm.graphio/src/org/graalvm/graphio/GraphProtocol.java
--- a/src/jdk.internal.vm.compiler/share/classes/org.graalvm.graphio/src/org/graalvm/graphio/GraphProtocol.java Thu Oct 17 20:27:44 2019 +0100
+++ b/src/jdk.internal.vm.compiler/share/classes/org.graalvm.graphio/src/org/graalvm/graphio/GraphProtocol.java Thu Oct 17 20:53:35 2019 +0100
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2019, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -28,6 +28,7 @@
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
+import java.nio.Buffer;
import java.nio.ByteBuffer;
import java.nio.channels.WritableByteChannel;
import java.nio.charset.Charset;
@@ -86,6 +87,13 @@
final int versionMinor;
private boolean printing;
+ /**
+ * See {@code org.graalvm.compiler.serviceprovider.BufferUtil}.
+ */
+ private static Buffer asBaseBuffer(Buffer obj) {
+ return obj;
+ }
+
GraphProtocol(WritableByteChannel channel, int major, int minor, boolean embedded) throws IOException {
if (major > MAJOR_VERSION || (major == MAJOR_VERSION && minor > MINOR_VERSION)) {
throw new IllegalArgumentException("Unrecognized version " + major + "." + minor);
@@ -328,7 +336,7 @@
}
private void flush() throws IOException {
- buffer.flip();
+ asBaseBuffer(buffer).flip();
/*
* Try not to let interrupted threads abort the write. There's still a race here but an
* interrupt that's been pending for a long time shouldn't stop this writing.
@@ -411,12 +419,12 @@
while (b.position() < limit) {
int toWrite = Math.min(limit - b.position(), buffer.capacity());
ensureAvailable(toWrite);
- b.limit(b.position() + toWrite);
+ asBaseBuffer(b).limit(b.position() + toWrite);
try {
buffer.put(b);
written += toWrite;
} finally {
- b.limit(limit);
+ asBaseBuffer(b).limit(limit);
}
}
return written;
@@ -430,7 +438,7 @@
int sizeInBytes = b.length * 4;
ensureAvailable(sizeInBytes);
buffer.asIntBuffer().put(b);
- buffer.position(buffer.position() + sizeInBytes);
+ asBaseBuffer(buffer).position(buffer.position() + sizeInBytes);
}
}
@@ -442,7 +450,7 @@
int sizeInBytes = b.length * 8;
ensureAvailable(sizeInBytes);
buffer.asDoubleBuffer().put(b);
- buffer.position(buffer.position() + sizeInBytes);
+ asBaseBuffer(buffer).position(buffer.position() + sizeInBytes);
}
}