{"thread":{"id":"21007","subject":"[PATCH JGIT] Make it possible to clear a PlotCommitList","startedAt":"2009-09-20T13:34:37Z","lastAt":"2009-09-20T13:34:37Z","messageCount":1,"participants":["Jonas Fonseca"],"isPatch":true,"patchVersion":1,"patchTotal":null},"messages":[{"id":"123538","messageId":"1253453677-10126-1-git-send-email-fonseca@diku.dk","threadId":"21007","inReplyTo":null,"subject":"[PATCH JGIT] Make it possible to clear a PlotCommitList","fromName":"Jonas Fonseca","fromEmail":"fonseca@diku.dk","sentAt":"2009-09-20T13:34:37Z","receivedAt":"2009-09-20T13:34:37Z","isPatch":true,"sender":{"key":"fonseca@diku.dk","avatar":"https://gravatar.com/avatar/f82f3ad698717c51873b020c750a92438c820a24056dc39fe4d07baa10a92264?d=mp&s=160"},"body":"This allows SwingGraphPanes to be reused by simply clearing and\nre-filling. Requires RevObjectList initialization to not call clear()\nfrom its constructor, because this will lead PlotCommitList.clear() to\nbe called before all variables have been initialized.\n\nSigned-off-by: Jonas Fonseca <fonseca@diku.dk>\n---\n .../org/spearce/jgit/revplot/PlotCommitList.java   |   12 ++++++++++--\n .../org/spearce/jgit/revwalk/RevObjectList.java    |    7 +++----\n 2 files changed, 13 insertions(+), 6 deletions(-)\n\ndiff --git a/org.spearce.jgit/src/org/spearce/jgit/revplot/PlotCommitList.java b/org.spearce.jgit/src/org/spearce/jgit/revplot/PlotCommitList.java\nindex a0959e2..39e4759 100644\n--- a/org.spearce.jgit/src/org/spearce/jgit/revplot/PlotCommitList.java\n+++ b/org.spearce.jgit/src/org/spearce/jgit/revplot/PlotCommitList.java\n@@ -64,7 +64,15 @@\n \n \tprivate final TreeSet<Integer> freeLanes = new TreeSet<Integer>();\n \n-\tprivate HashSet<PlotLane> activeLanes = new HashSet<PlotLane>(32);\n+\tprivate final HashSet<PlotLane> activeLanes = new HashSet<PlotLane>(32);\n+\n+\t@Override\n+\tpublic void clear() {\n+\t\tsuper.clear();\n+\t\tlanesAllocated = 0;\n+\t\tfreeLanes.clear();\n+\t\tactiveLanes.clear();\n+\t}\n \n \t@Override\n \tpublic void source(final RevWalk w) {\n@@ -133,7 +141,7 @@ protected void enter(final int index, final PlotCommit<L> currCommit) {\n \t\t\t\tfinal PlotCommit c = currCommit.children[i];\n \t\t\t\tif (activeLanes.remove(c.lane)) {\n \t\t\t\t\trecycleLane((L) c.lane);\n-\t\t\t\t\tfreeLanes.add(Integer.valueOf(c.lane.position));\n+\t\t\t\t\tfreeLanes.add(Integer.valueOf(c.lane.getPosition()));\n \t\t\t\t}\n \t\t\t}\n \ndiff --git a/org.spearce.jgit/src/org/spearce/jgit/revwalk/RevObjectList.java b/org.spearce.jgit/src/org/spearce/jgit/revwalk/RevObjectList.java\nindex b95b127..d57c779 100644\n--- a/org.spearce.jgit/src/org/spearce/jgit/revwalk/RevObjectList.java\n+++ b/org.spearce.jgit/src/org/spearce/jgit/revwalk/RevObjectList.java\n@@ -50,13 +50,12 @@\n \n \tstatic final int BLOCK_SIZE = 1 << BLOCK_SHIFT;\n \n-\tBlock contents;\n+\tprotected Block contents = new Block(0);\n \n-\tint size;\n+\tprotected int size = 0;\n \n \t/** Create an empty object list. */\n \tpublic RevObjectList() {\n-\t\tclear();\n \t}\n \n \tpublic void add(final int index, final E element) {\n@@ -107,7 +106,7 @@ public void clear() {\n \t\tsize = 0;\n \t}\n \n-\tstatic class Block {\n+\tprotected static class Block {\n \t\tfinal Object[] contents = new Object[BLOCK_SIZE];\n \n \t\tfinal int shift;\n-- \n1.6.5.rc0.164.g5f6b0\n"}]}