final ByteBuffer getKeyFromPointer ( int index ) { int origionalLimit = memoryBuffer . limit ( ) ; memoryBuffer . limit ( memoryBuffer . capacity ( ) ) ; int pointerOffset = computePointerOffset ( index ) ; int keyPos = memoryBuffer . getInt ( pointerOffset ) ; int valuePos = memoryBuffer . getInt ( pointerOffset + 4 ) ; memoryBuffer . limit ( origionalLimit ) ; assert valuePos >= keyPos ; ByteBuffer key = sliceOutRange ( keyPos , valuePos ) ; return key ; }
Get a key given the index of its pointer .