Skip to content

Commit f711ce4

Browse files
author
Brian Burkhalter
committed
8234841: Enhance buffering of byte buffers
Reviewed-by: alanb, ahgross, rhalade, psandoz
1 parent f476138 commit f711ce4

File tree

4 files changed

+10
-7
lines changed

4 files changed

+10
-7
lines changed

src/java.base/share/classes/java/nio/ByteBufferAs-X-Buffer.java.template

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,6 @@ class ByteBufferAs$Type$Buffer$RW$$BO$ // package-private
8080
public $Type$Buffer slice() {
8181
int pos = this.position();
8282
int lim = this.limit();
83-
assert (pos <= lim);
8483
int rem = (pos <= lim ? lim - pos : 0);
8584
long addr = byteOffset(pos);
8685
return new ByteBufferAs$Type$Buffer$RW$$BO$(bb, -1, 0, rem, rem, addr, segment);

src/java.base/share/classes/java/nio/Direct-X-Buffer.java.template

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -213,7 +213,6 @@ class Direct$Type$Buffer$RW$$BO$
213213
public $Type$Buffer slice() {
214214
int pos = this.position();
215215
int lim = this.limit();
216-
assert (pos <= lim);
217216
int rem = (pos <= lim ? lim - pos : 0);
218217
int off = (pos << $LG_BYTES_PER_VALUE$);
219218
assert (off >= 0);

src/java.base/share/classes/java/nio/Heap-X-Buffer.java.template

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -105,13 +105,15 @@ class Heap$Type$Buffer$RW$
105105
}
106106

107107
public $Type$Buffer slice() {
108-
int rem = this.remaining();
108+
int pos = this.position();
109+
int lim = this.limit();
110+
int rem = (pos <= lim ? lim - pos : 0);
109111
return new Heap$Type$Buffer$RW$(hb,
110112
-1,
111113
0,
112114
rem,
113115
rem,
114-
this.position() + offset, segment);
116+
pos + offset, segment);
115117
}
116118

117119
@Override

src/java.base/share/classes/java/nio/StringCharBuffer.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,12 +43,15 @@ class StringCharBuffer // package-private
4343
}
4444

4545
public CharBuffer slice() {
46+
int pos = this.position();
47+
int lim = this.limit();
48+
int rem = (pos <= lim ? lim - pos : 0);
4649
return new StringCharBuffer(str,
4750
-1,
4851
0,
49-
this.remaining(),
50-
this.remaining(),
51-
offset + this.position());
52+
rem,
53+
rem,
54+
offset + pos);
5255
}
5356

5457
@Override

0 commit comments

Comments
 (0)