From bf1da638ccae6fa494570441676193edb99ee882 Mon Sep 17 00:00:00 2001 From: Paul Phillips Date: Thu, 12 May 2011 07:25:47 +0000 Subject: Reverting a little of that last patch, no review. --- src/compiler/scala/tools/nsc/io/AbstractFile.scala | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/compiler/scala/tools/nsc/io/AbstractFile.scala b/src/compiler/scala/tools/nsc/io/AbstractFile.scala index bafb78e9f2..4b196877a3 100644 --- a/src/compiler/scala/tools/nsc/io/AbstractFile.scala +++ b/src/compiler/scala/tools/nsc/io/AbstractFile.scala @@ -148,7 +148,19 @@ abstract class AbstractFile extends AnyRef with Iterable[AbstractFile] { /** Returns contents of file (if applicable) in a byte array. */ @throws(classOf[IOException]) - def toByteArray: Array[Byte] = Streamable.toByteArray(input, sizeOption getOrElse -1) + def toByteArray: Array[Byte] = { + val in = input + var rest = sizeOption.get + val arr = new Array[Byte](rest) + while (rest > 0) { + val res = in.read(arr, arr.length - rest, rest) + if (res == -1) + throw new IOException("read error") + rest -= res + } + in.close() + arr + } /** Returns all abstract subfiles of this abstract directory. */ def iterator: Iterator[AbstractFile] -- cgit v1.2.3