public void reset(boolean zeroFillBuffers,boolean reuseFirst){
  if (bufferUpto != -1) {
    if (zeroFillBuffers) {
      for (int i=0; i < bufferUpto; i++) {
        Arrays.fill(buffers[i],0);
      }
      Arrays.fill(buffers[bufferUpto],0,intUpto,0);
    }
    if (bufferUpto > 0 || !reuseFirst) {
      final int offset=reuseFirst ? 1 : 0;
      allocator.recycleIntBlocks(buffers,offset,1 + bufferUpto);
      Arrays.fill(buffers,offset,bufferUpto + 1,null);
    }
    if (reuseFirst) {
      bufferUpto=0;
      intUpto=0;
      intOffset=0;
      buffer=buffers[0];
    }
 else {
      bufferUpto=-1;
      intUpto=INT_BLOCK_SIZE;
      intOffset=-INT_BLOCK_SIZE;
      buffer=null;
    }
  }
}

public void reset ( boolean zeroFillBuffers , boolean reuseFirst ) { if ( bufferUpto != - 1 ) { if ( zeroFillBuffers ) { for ( int i = 0 ; i < bufferUpto ; i ++ ) { Arrays . fill ( buffers [ i ] , 0 ) ; } Arrays . fill ( buffers [ bufferUpto ] , 0 , intUpto , 0 ) ; } if ( bufferUpto > 0 || ! reuseFirst ) { final int offset = reuseFirst ? 1 : 0 ; allocator . recycleIntBlocks ( buffers , offset , 1 + bufferUpto ) ; Arrays . fill ( buffers , offset , bufferUpto + 1 , null ) ; } if ( reuseFirst ) { bufferUpto = 0 ; intUpto = 0 ; intOffset = 0 ; buffer = buffers [ 0 ] ; } else { bufferUpto = - 1 ; intUpto = INT_BLOCK_SIZE ; intOffset = - INT_BLOCK_SIZE ; buffer = null ; } } }
expert : resets the pool to its initial state reusing the first buffer .
