From: megacz Date: Fri, 30 Jan 2004 07:42:23 +0000 (+0000) Subject: 2003/11/29 05:39:00 X-Git-Tag: RC3~297 X-Git-Url: http://git.megacz.com/?p=org.ibex.core.git;a=commitdiff_plain;h=b3d9c10590dd82deab27715a27a6db72af074a7c 2003/11/29 05:39:00 darcs-hash:20040130074223-2ba56-27d3d240d03445803ab1461b853f5b7b39a25649.gz --- diff --git a/src/org/xwt/Box.java b/src/org/xwt/Box.java index 2adac17..8030fec 100644 --- a/src/org/xwt/Box.java +++ b/src/org/xwt/Box.java @@ -635,26 +635,14 @@ public final class Box extends JSScope { // Tree Handling ////////////////////////////////////////////////////////////////////// - // FIXME inefficient - public final Box nextSibling() { - int index = parent.indexNode(this); - if (index >= parent.treeSize() - 1) return null; - return parent.getChild(index + 1); - } - - // FIXME inefficient - public final Box prevSibling() { - int index = parent.indexNode(this); - if (index <= 0) return null; - return parent.getChild(index - 1); - } - + public final int getIndexInParent() { return parent == null ? 0 : parent.indexNode(this); } + public final Box nextSibling() { return parent.getChild(parent.indexNode(this) + 1); } + public final Box prevSibling() { return parent.getChild(parent.indexNode(this) - 1); } public final Box getChild(int i) { if (i < 0) return null; if (i >= treeSize()) return null; return (Box)getNode(i); } - public final int getIndexInParent() { return parent == null ? 0 : parent.indexNode(this); } // Tree Manipulation ///////////////////////////////////////////////////////////////////// diff --git a/src/org/xwt/util/BalancedTree.java b/src/org/xwt/util/BalancedTree.java index dadf42b..988351d 100644 --- a/src/org/xwt/util/BalancedTree.java +++ b/src/org/xwt/util/BalancedTree.java @@ -76,7 +76,9 @@ public class BalancedTree { } } - return objects[get(index, root)]; + cached_index = index; + cached_slot = get(index, root); + return objects[cached_slot]; } /** deletes the object at index, returning the deleted object */