/** * Rebind cursor frames affected by split to correct node and * position. Caller must hold exclusive latch. * * @return latched sibling */ private Node rebindSplitFrames(Split split) { final Node sibling = split.latchSiblingEx(); try { for (CursorFrame frame = mLastCursorFrame; frame != null; ) { // Capture previous frame from linked list before changing the links. CursorFrame prev = frame.mPrevCousin; split.rebindFrame(frame, sibling); frame = prev; } return sibling; } catch (Throwable e) { sibling.releaseExclusive(); throw e; } }
/** * Rebind cursor frames affected by split to correct node and * position. Caller must hold exclusive latch. * * @return latched sibling */ private Node rebindSplitFrames(Split split) { final Node sibling = split.latchSiblingEx(); try { for (CursorFrame frame = mLastCursorFrame; frame != null; ) { // Capture previous frame from linked list before changing the links. CursorFrame prev = frame.mPrevCousin; split.rebindFrame(frame, sibling); frame = prev; } return sibling; } catch (Throwable e) { sibling.releaseExclusive(); throw e; } }
/** * Rebind cursor frames affected by split to correct node and * position. Caller must hold exclusive latch. * * @return latched sibling */ private Node rebindSplitFrames(Split split) { final Node sibling = split.latchSiblingEx(); try { for (CursorFrame frame = mLastCursorFrame; frame != null; ) { // Capture previous frame from linked list before changing the links. CursorFrame prev = frame.mPrevCousin; split.rebindFrame(frame, sibling); frame = prev; } return sibling; } catch (Throwable e) { sibling.releaseExclusive(); throw e; } }
split.rebindFrame(this, sibling);
split.rebindFrame(frame, sibling);
split.rebindFrame(frame, sibling);