public int put(Object value){
  value=makePoolValue(value);
  Integer index=indices.get(value);
  if (index == null) {
    index=pp;
    indices.put(value,index);
    pool=ArrayUtils.ensureCapacity(pool,pp);
    pool[pp++]=value;
    if (value instanceof Long || value instanceof Double) {
      pool=ArrayUtils.ensureCapacity(pool,pp);
      pool[pp++]=null;
    }
  }
  return index.intValue();
}

public int put ( Object value ) { value = makePoolValue ( value ) ; Integer index = indices . get ( value ) ; if ( index == null ) { index = pp ; indices . put ( value , index ) ; pool = ArrayUtils . ensureCapacity ( pool , pp ) ; pool [ pp ++ ] = value ; if ( value instanceof Long || value instanceof Double ) { pool = ArrayUtils . ensureCapacity ( pool , pp ) ; pool [ pp ++ ] = null ; } } return index . intValue ( ) ; }
place an object in the pool , unless it is already there . if object is a symbol also enter its owner unless the owner is a package . return the object ' s index in the pool .
