text: public void nextSlice() {final int nextIndex = ((buffer[limit]&0xff)<<24) + ((buffer[1+limit]&0xff)<<16) + ((buffer[2+limit]&0xff)<<8) + (buffer[3+limit]&0xff);level = ByteBlockPool.NEXT_LEVEL_ARRAY[level];final int newSize = ByteBlockPool.LEVEL_SIZE_ARRAY[level];bufferUpto = nextIndex / ByteBlockPool.BYTE_BLOCK_SIZE;bufferOffset = bufferUpto * ByteBlockPool.BYTE_BLOCK_SIZE;buffer = pool.buffers[bufferUpto];upto = nextIndex & ByteBlockPool.BYTE_BLOCK_MASK;if (nextIndex + newSize >= endIndex) {assert endIndex - nextIndex > 0;limit = endIndex - bufferOffset;} else {limit = upto+newSize-4;}}