OpenJDK / jdk-updates / jdk11u
changeset 52907:4b2346f5b2d5
8234841: Enhance buffering of byte buffers
Reviewed-by: alanb, ahgross, rhalade, psandoz
author | robm |
---|---|
date | Mon, 30 Mar 2020 05:13:42 +0100 |
parents | b325a53bcd1a |
children | d56ef487dbcb |
files | src/java.base/share/classes/java/nio/ByteBufferAs-X-Buffer.java.template src/java.base/share/classes/java/nio/Direct-X-Buffer.java.template src/java.base/share/classes/java/nio/Heap-X-Buffer.java.template src/java.base/share/classes/java/nio/StringCharBuffer.java |
diffstat | 4 files changed, 10 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/src/java.base/share/classes/java/nio/ByteBufferAs-X-Buffer.java.template Wed Mar 13 11:12:22 2019 -0700 +++ b/src/java.base/share/classes/java/nio/ByteBufferAs-X-Buffer.java.template Mon Mar 30 05:13:42 2020 +0100 @@ -79,7 +79,6 @@ public $Type$Buffer slice() { int pos = this.position(); int lim = this.limit(); - assert (pos <= lim); int rem = (pos <= lim ? lim - pos : 0); long addr = byteOffset(pos); return new ByteBufferAs$Type$Buffer$RW$$BO$(bb, -1, 0, rem, rem, addr);
--- a/src/java.base/share/classes/java/nio/Direct-X-Buffer.java.template Wed Mar 13 11:12:22 2019 -0700 +++ b/src/java.base/share/classes/java/nio/Direct-X-Buffer.java.template Mon Mar 30 05:13:42 2020 +0100 @@ -209,7 +209,6 @@ public $Type$Buffer slice() { int pos = this.position(); int lim = this.limit(); - assert (pos <= lim); int rem = (pos <= lim ? lim - pos : 0); int off = (pos << $LG_BYTES_PER_VALUE$); assert (off >= 0);
--- a/src/java.base/share/classes/java/nio/Heap-X-Buffer.java.template Wed Mar 13 11:12:22 2019 -0700 +++ b/src/java.base/share/classes/java/nio/Heap-X-Buffer.java.template Mon Mar 30 05:13:42 2020 +0100 @@ -102,13 +102,15 @@ } public $Type$Buffer slice() { - int rem = this.remaining(); + int pos = this.position(); + int lim = this.limit(); + int rem = (pos <= lim ? lim - pos : 0); return new Heap$Type$Buffer$RW$(hb, -1, 0, rem, rem, - this.position() + offset); + pos + offset); } #if[byte]
--- a/src/java.base/share/classes/java/nio/StringCharBuffer.java Wed Mar 13 11:12:22 2019 -0700 +++ b/src/java.base/share/classes/java/nio/StringCharBuffer.java Mon Mar 30 05:13:42 2020 +0100 @@ -43,12 +43,15 @@ } public CharBuffer slice() { + int pos = this.position(); + int lim = this.limit(); + int rem = (pos <= lim ? lim - pos : 0); return new StringCharBuffer(str, -1, 0, - this.remaining(), - this.remaining(), - offset + this.position()); + rem, + rem, + offset + pos); } private StringCharBuffer(CharSequence s,