2003/11/29 05:39:00
authormegacz <megacz@xwt.org>
Fri, 30 Jan 2004 07:42:23 +0000 (07:42 +0000)
committermegacz <megacz@xwt.org>
Fri, 30 Jan 2004 07:42:23 +0000 (07:42 +0000)
darcs-hash:20040130074223-2ba56-27d3d240d03445803ab1461b853f5b7b39a25649.gz

src/org/xwt/Box.java
src/org/xwt/util/BalancedTree.java

index 2adac17..8030fec 100644 (file)
@@ -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 /////////////////////////////////////////////////////////////////////
 
index dadf42b..988351d 100644 (file)
@@ -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 */