Skip to content

Commit 952996e

Browse files
committed
msgpack#103: Simplified ArrayBufferInput
1 parent c963037 commit 952996e

File tree

1 file changed

+5
-13
lines changed

1 file changed

+5
-13
lines changed

msgpack-core/src/main/java/org/msgpack/core/buffer/ArrayBufferInput.java

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -9,34 +9,26 @@
99
public class ArrayBufferInput implements MessageBufferInput {
1010

1111
private MessageBuffer buffer;
12-
private int cursor;
12+
private boolean isRead = false;
1313
private final int length;
1414

1515
public ArrayBufferInput(byte[] arr) {
1616
this(arr, 0, arr.length);
1717
}
1818

1919
public ArrayBufferInput(byte[] arr, int offset, int length) {
20-
this.buffer = MessageBuffer.wrap(checkNotNull(arr, "input array is null"));
21-
this.cursor = offset;
20+
this.buffer = MessageBuffer.wrap(checkNotNull(arr, "input array is null")).slice(offset, length);
2221
checkArgument(length <= arr.length);
2322
this.length = length;
2423
}
2524

2625

2726
@Override
2827
public MessageBuffer next() throws IOException {
29-
if(cursor < length) {
30-
int c = cursor;
31-
cursor = length;
32-
if(c == 0 && length == buffer.size)
33-
return buffer;
34-
else
35-
return buffer.slice(c, length);
36-
}
37-
else {
28+
if(isRead)
3829
return null;
39-
}
30+
isRead = true;
31+
return buffer;
4032
}
4133

4234
@Override

0 commit comments

Comments
 (0)