Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJonathan Nieder2015-11-04 06:33:05 +0000
committerJonathan Nieder2015-11-05 21:03:22 +0000
commitfd1ee636a29638e44a3f8c09df846f9ac540c6cf (patch)
treea08e555028eebb18111be9da2d5767233a873ec4
parentf102abf035ae242d96368dadafaee8a339f72c7e (diff)
downloadjgit-fd1ee636a29638e44a3f8c09df846f9ac540c6cf.tar.gz
jgit-fd1ee636a29638e44a3f8c09df846f9ac540c6cf.tar.xz
jgit-fd1ee636a29638e44a3f8c09df846f9ac540c6cf.zip
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
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/pack/PackWriterBitmapWalker.java20
1 files changed, 18 insertions, 2 deletions
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/pack/PackWriterBitmapWalker.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/pack/PackWriterBitmapWalker.java
index 4a7585a9d2..01aa932557 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/pack/PackWriterBitmapWalker.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/pack/PackWriterBitmapWalker.java
@@ -167,9 +167,17 @@ final class PackWriterBitmapWalker {
@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 @@ final class PackWriterBitmapWalker {
@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);
}

Back to the top