From 43e3696f945daea9c2c6e132b19148aad7f45938 Mon Sep 17 00:00:00 2001 From: usev6 Date: Sun, 15 May 2016 19:30:00 +0200 Subject: [PATCH] Only get new data from readBuffer While using nqp::readallfh after a call to nqp::readlinechompfh there seemed to be old data in readBuffer -- and we copied that instead of only new data. --- src/vm/jvm/runtime/org/perl6/nqp/io/SyncHandle.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/vm/jvm/runtime/org/perl6/nqp/io/SyncHandle.java b/src/vm/jvm/runtime/org/perl6/nqp/io/SyncHandle.java index 02e2b0fe4f..5bc61dbd60 100644 --- a/src/vm/jvm/runtime/org/perl6/nqp/io/SyncHandle.java +++ b/src/vm/jvm/runtime/org/perl6/nqp/io/SyncHandle.java @@ -59,7 +59,9 @@ public synchronized String slurp(ThreadContext tc) { int read; if (readBuffer != null) { total = readBuffer.limit() - readBuffer.position(); - buffers.add(ByteBuffer.wrap(readBuffer.array(), readBuffer.position(), total)); + byte[] newBytes = new byte[total]; + readBuffer.get(newBytes); + buffers.add(ByteBuffer.wrap(newBytes)); readBuffer = null; } while ((read = chan.read(curBuffer)) != -1) {