Switch FileHeader.extractFileLines to TemporaryBuffer.Heap
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
This commit is contained in:
parent
67b8bcc1c4
commit
4206ea43b8
|
@ -267,7 +267,7 @@ private String[] extractFileLines(final Charset[] csGuess) {
|
||||||
final TemporaryBuffer[] tmp = new TemporaryBuffer[getParentCount() + 1];
|
final TemporaryBuffer[] tmp = new TemporaryBuffer[getParentCount() + 1];
|
||||||
try {
|
try {
|
||||||
for (int i = 0; i < tmp.length; i++)
|
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())
|
for (final HunkHeader h : getHunks())
|
||||||
h.extractFileLines(tmp);
|
h.extractFileLines(tmp);
|
||||||
|
|
||||||
|
@ -281,11 +281,6 @@ private String[] extractFileLines(final Charset[] csGuess) {
|
||||||
return r;
|
return r;
|
||||||
} catch (IOException ioe) {
|
} catch (IOException ioe) {
|
||||||
throw new RuntimeException(JGitText.get().cannotConvertScriptToText, ioe);
|
throw new RuntimeException(JGitText.get().cannotConvertScriptToText, ioe);
|
||||||
} finally {
|
|
||||||
for (final TemporaryBuffer b : tmp) {
|
|
||||||
if (b != null)
|
|
||||||
b.destroy();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -139,14 +139,10 @@ public void parse(final InputStream is) throws IOException {
|
||||||
}
|
}
|
||||||
|
|
||||||
private static byte[] readFully(final InputStream is) throws IOException {
|
private static byte[] readFully(final InputStream is) throws IOException {
|
||||||
final TemporaryBuffer b = new TemporaryBuffer.LocalFile();
|
TemporaryBuffer b = new TemporaryBuffer.Heap(Integer.MAX_VALUE);
|
||||||
try {
|
b.copy(is);
|
||||||
b.copy(is);
|
b.close();
|
||||||
b.close();
|
return b.toByteArray();
|
||||||
return b.toByteArray();
|
|
||||||
} finally {
|
|
||||||
b.destroy();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue