question: 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 ( ) ; }
target:  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.