From 699e4aa7c5673b3c85f2be28652fbab6bd0dd968 Mon Sep 17 00:00:00 2001 From: "Shawn O. Pearce" Date: Fri, 9 Jul 2010 08:51:47 -0700 Subject: [PATCH] Make ObjectToPack clearReuseAsIs signal available to subclasses A subclass may want to use this method to release handles that are caching reuse information. Make it protected so they can override it and update themselves. Change-Id: I2277a56ad28560d2d2d97961cbc74bc7405a70d4 Signed-off-by: Shawn O. Pearce --- .../org/eclipse/jgit/storage/file/LocalObjectToPack.java | 6 ++++++ .../src/org/eclipse/jgit/storage/pack/ObjectToPack.java | 9 ++++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/storage/file/LocalObjectToPack.java b/org.eclipse.jgit/src/org/eclipse/jgit/storage/file/LocalObjectToPack.java index b4bf37a5e..c7ef2c913 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/storage/file/LocalObjectToPack.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/storage/file/LocalObjectToPack.java @@ -62,6 +62,12 @@ class LocalObjectToPack extends ObjectToPack { super(obj); } + @Override + protected void clearReuseAsIs() { + super.clearReuseAsIs(); + pack = null; + } + @Override public void select(StoredObjectRepresentation ref) { LocalObjectRepresentation ptr = (LocalObjectRepresentation) ref; diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/storage/pack/ObjectToPack.java b/org.eclipse.jgit/src/org/eclipse/jgit/storage/pack/ObjectToPack.java index afab01752..d3c409d9d 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/storage/pack/ObjectToPack.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/storage/pack/ObjectToPack.java @@ -199,7 +199,14 @@ public class ObjectToPack extends PackedObjectInfo { flags |= REUSE_AS_IS; } - void clearReuseAsIs() { + /** + * Forget the reuse information previously stored. + *

+ * Implementations may subclass this method, but they must also invoke the + * super version with {@code super.clearReuseAsIs()} to ensure the flag is + * properly cleared for the writer. + */ + protected void clearReuseAsIs() { flags &= ~REUSE_AS_IS; }