Use .addObject and .or instead of .add in AddToBitmapFilter

This is the caller that the BitmapBuilder.add method was designed
around.  Moving away from .add makes it more verbose but hopefully
clearer.

Change-Id: I57b1d7c1dc8fb800b242b76c606922b5aa36b9b2
This commit is contained in:
Jonathan Nieder 2015-11-03 22:33:05 -08:00
parent f102abf035
commit fd1ee636a2
1 changed files with 18 additions and 2 deletions

View File

@ -167,9 +167,17 @@ private static class AddToBitmapFilter extends RevFilter {
@Override
public final boolean include(RevWalk walker, RevCommit cmit) {
if (bitmap.add(cmit, Constants.OBJ_COMMIT)) {
Bitmap visitedBitmap;
if (bitmap.contains(cmit)) {
// already included
} else if ((visitedBitmap = bitmap.getBitmapIndex().getBitmap(cmit)) != null) {
bitmap.or(visitedBitmap);
} else {
bitmap.addObject(cmit, Constants.OBJ_COMMIT);
return true;
}
for (RevCommit p : cmit.getParents()) {
p.add(RevFlag.SEEN);
}
@ -212,9 +220,17 @@ private static class AddUnseenToBitmapFilter extends RevFilter {
@Override
public final boolean include(RevWalk walker, RevCommit cmit) {
if (!seen.contains(cmit) && bitmap.add(cmit, Constants.OBJ_COMMIT)) {
Bitmap visitedBitmap;
if (seen.contains(cmit) || bitmap.contains(cmit)) {
// already seen or included
} else if ((visitedBitmap = bitmap.getBitmapIndex().getBitmap(cmit)) != null) {
bitmap.or(visitedBitmap);
} else {
bitmap.addObject(cmit, Constants.OBJ_COMMIT);
return true;
}
for (RevCommit p : cmit.getParents()) {
p.add(RevFlag.SEEN);
}