code: void readSlot(int position, int[] buffer)
    {
      /*
      try
      {
        System.arraycopy(fastArray, position*slotsize, buffer, 0, slotsize);
      }
      catch(ArrayIndexOutOfBoundsException aioobe)
      */
      {
        // System.out.println("Using slow read (2): "+position);
        position *= slotsize;
        int chunkpos = position >> lowbits;
        int slotpos = (position & lowmask);
  
        // Grow if needed
        if (chunkpos > chunks.size() - 1)
          chunks.addElement(new int[chunkalloc]);
        int[] chunk = chunks.elementAt(chunkpos);
        System.arraycopy(chunk,slotpos,buffer,0,slotsize);
      }
    }
docs: Retrieve the contents of a record into a user-supplied buffer array.
  Used to reduce addressing overhead when code will access several
  columns of the record.
  @param position int Record number
  @param buffer int[] Integer array provided by user, must be large enough
  to hold a complete record.