public Object read(ByteArrayBuffer buffer) { int size = buffer.readInt(); int address = buffer.readInt(); if (size > sizeLimit) { FreeSlotNode node = new FreeSlotNode(size); node.createPeer(address); if (Deploy.debug && Debug.xbytes) { debugCheckBuffer(buffer, node); } return node; } return null; }
static final Tree removeGreaterOrEqual(FreeSlotNode a_in, TreeIntObject a_finder) { if (a_in == null) { return null; } int cmp = a_in._key - a_finder._key; if (cmp == 0) { a_finder._object = a_in; // the highest node in the hierarchy !!! return a_in.remove(); } if (cmp > 0) { a_in._preceding = removeGreaterOrEqual((FreeSlotNode) a_in._preceding, a_finder); if (a_finder._object != null) { a_in._size--; return a_in; } a_finder._object = a_in; return a_in.remove(); } a_in._subsequent = removeGreaterOrEqual((FreeSlotNode) a_in._subsequent, a_finder); if (a_finder._object != null) { a_in._size--; } return a_in; }
final void createPeer(int a_key) { _peer = new FreeSlotNode(a_key); _peer._peer = this; }
public Object shallowClone() { FreeSlotNode frslot = new FreeSlotNode(_key); frslot._peer = _peer; return super.shallowCloneInternal(frslot); }