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;}}

public void NextSlice(){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];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){Debug.Assert(EndIndex - nextIndex > 0);limit = EndIndex - BufferOffset;}else{limit = upto + newSize - 4;}}
