File contents are processed into a single byte[] for character
conversion. The data must fit entirely in memory, so avoid any
file IO.
Change-Id: I3fe8be2e5f37d5ae953596dda1ed3fe6d4f6aebc
final TemporaryBuffer[] tmp = new TemporaryBuffer[getParentCount() + 1];
try {
for (int i = 0; i < tmp.length; i++)
- tmp[i] = new TemporaryBuffer.LocalFile();
+ tmp[i] = new TemporaryBuffer.Heap(Integer.MAX_VALUE);
for (final HunkHeader h : getHunks())
h.extractFileLines(tmp);
return r;
} catch (IOException ioe) {
throw new RuntimeException(JGitText.get().cannotConvertScriptToText, ioe);
- } finally {
- for (final TemporaryBuffer b : tmp) {
- if (b != null)
- b.destroy();
- }
}
}
}
private static byte[] readFully(final InputStream is) throws IOException {
- final TemporaryBuffer b = new TemporaryBuffer.LocalFile();
- try {
- b.copy(is);
- b.close();
- return b.toByteArray();
- } finally {
- b.destroy();
- }
+ TemporaryBuffer b = new TemporaryBuffer.Heap(Integer.MAX_VALUE);
+ b.copy(is);
+ b.close();
+ return b.toByteArray();
}
/**