RevWalk: Discard uninteresting commits unless RevSort.BOUNDARY
Previously using an ObjectWalk meant uninteresting commits may keep their commit message buffers in memory just in case they were found to be on the boundary and were output as UNINTERESTING for the caller. This was incorrect inside StartGenerator. ObjectWalk hides these internal UNINTERESTING cases from its caller unless RevSort.BOUNDARY was explicitly set, and its false by default. Callers never see one of these saved uninteresting commits. Change the test to allow early dispose unless the application has explicitly asked for RevSort.BOUNDARY. This allows uninteresting commit buffers to be discarded and garbage collected in ObjectWalks when the caller will never be given the RevCommit. Change-Id: Ic1419cc1d9ee95f4d09386dd0730d54c12dcc157
This commit is contained in:
parent
53e39094bf
commit
af7dcd6e1b
|
@ -144,7 +144,7 @@ RevCommit next() throws MissingObjectException,
|
|||
} else {
|
||||
g = new PendingGenerator(w, pending, rf, pendingOutputType);
|
||||
|
||||
if (boundary) {
|
||||
if (walker.hasRevSort(RevSort.BOUNDARY)) {
|
||||
// Because the boundary generator may produce uninteresting
|
||||
// commits we cannot allow the pending generator to dispose
|
||||
// of them early.
|
||||
|
|
Loading…
Reference in New Issue