projects
/
org.ibex.core.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
b3fc9de
)
cut down on balancedtree's memory usage
author
brian
<brian@brianweb.net>
Thu, 3 Jun 2004 21:20:28 +0000
(21:20 +0000)
committer
brian
<brian@brianweb.net>
Thu, 3 Jun 2004 21:20:28 +0000
(21:20 +0000)
darcs-hash:
20040603212028
-24bed-
e7bb14306493bdd6b9ac7d76fafd1d688ae9bdd8
.gz
src/org/ibex/util/BalancedTree.java
patch
|
blob
|
history
diff --git
a/src/org/ibex/util/BalancedTree.java
b/src/org/ibex/util/BalancedTree.java
index
82226c2
..
3e751fd
100644
(file)
--- a/
src/org/ibex/util/BalancedTree.java
+++ b/
src/org/ibex/util/BalancedTree.java
@@
-22,6
+22,8
@@
public class BalancedTree {
private int cached_index = -1;
private int cached_slot = -1;
private int cached_index = -1;
private int cached_slot = -1;
+
+ private FinalizationHelper fh;
// Public API //////////////////////////////////////////////////////////////////////////
// Public API //////////////////////////////////////////////////////////////////////////
@@
-43,6
+45,7
@@
public class BalancedTree {
if (root != 0) {
insert(index, arg, root, 0, false, false);
} else {
if (root != 0) {
insert(index, arg, root, 0, false, false);
} else {
+ if(fh == null) fh = new FinalizationHelper(this);
root = arg;
left[arg] = right[arg] = parent[arg] = 0;
size[arg] = 1;
root = arg;
left[arg] = right[arg] = parent[arg] = 0;
size[arg] = 1;
@@
-140,9
+143,6
@@
public class BalancedTree {
root = 0;
}
}
root = 0;
}
}
-
- protected void finalize() { clear(); }
-
// Node Data /////////////////////////////////////////////////////////////////////////
// Node Data /////////////////////////////////////////////////////////////////////////
@@
-389,6
+389,12
@@
public class BalancedTree {
return slot;
}
}
return slot;
}
}
+
+ static class FinalizationHelper {
+ private BalancedTree bt;
+ FinalizationHelper(BalancedTree bt) { this.bt = bt; }
+ protected void finalize() { bt.clear(); }
+ }
// Debugging ///////////////////////////////////////////////////////////////////////////
// Debugging ///////////////////////////////////////////////////////////////////////////