public synchronized void returnBuf(byte[] buf){
  if (buf == null || buf.length > mSizeLimit) {
    return;
  }
  mBuffersByLastUse.add(buf);
  int pos=Collections.binarySearch(mBuffersBySize,buf,BUF_COMPARATOR);
  if (pos < 0) {
    pos=-pos - 1;
  }
  mBuffersBySize.add(pos,buf);
  mCurrentSize+=buf.length;
  trim();
}

public synchronized void returnBuf ( byte [ ] buf ) { if ( buf == null || buf . length > mSizeLimit ) { return ; } mBuffersByLastUse . add ( buf ) ; int pos = Collections . binarySearch ( mBuffersBySize , buf , BUF_COMPARATOR ) ; if ( pos < 0 ) { pos = - pos - 1 ; } mBuffersBySize . add ( pos , buf ) ; mCurrentSize += buf . length ; trim ( ) ; }
returns a buffer to the pool , throwing away old buffers if the pool would exceed its allotted size .
