com.oracle.truffle.object

## Class ShapeImpl.BaseAllocator

- java.lang.Object
- - com.oracle.truffle.api.object.Shape.Allocator
  - - com.oracle.truffle.object.ShapeImpl.BaseAllocator

Direct Known Subclasses:
  BasicAllocator

Enclosing class:
  ShapeImpl

    public abstract static class ShapeImpl.BaseAllocator
    extends Shape.Allocator

### Field Summary

Fields
`protected int` `depth`
`protected boolean` `hasPrimitiveArray`
`protected LayoutImpl` `layout`
`protected int` `objectArraySize`
`protected int` `objectFieldSize`
`protected int` `primitiveArraySize`
`protected int` `primitiveFieldSize`

### Constructor Summary

Constructors
`protected` `ShapeImpl.BaseAllocator(LayoutImpl layout)`
`protected` `ShapeImpl.BaseAllocator(ShapeImpl shape)`

### Method Summary

Methods
`ShapeImpl.BaseAllocator` `addLocation(Location location)`
`protected <T extends Location> T` `advance(T location0)`
`Location` `constantLocation(java.lang.Object value)`
`protected Location` `locationForType(java.lang.Class<?> type, boolean useFinal, boolean nonNull)`
`protected Location` `locationForValue(java.lang.Object value, boolean useFinal, boolean nonNull)`
`protected abstract Location` `locationForValueUpcast(java.lang.Object value, Location oldLocation)`
`protected abstract Location` `moveLocation(Location oldLocation)`
`protected abstract Location` `newBooleanLocation(boolean useFinal)`
`protected Location` `newDeclaredDualLocation(java.lang.Object value)`
`protected abstract Location` `newDoubleLocation(boolean useFinal)`
`protected Location` `newDualLocation(java.lang.Class<?> type)`
`protected Locations.DualLocation` `newDualLocationForValue(java.lang.Object value)`
`protected abstract Location` `newIntLocation(boolean useFinal)`
`protected abstract Location` `newLongLocation(boolean useFinal)`
`protected abstract Location` `newObjectLocation(boolean useFinal, boolean nonNull)`
`protected abstract Location` `newTypedObjectLocation(boolean useFinal, java.lang.Class<?> type, boolean nonNull)`

### Methods inherited from class com.oracle.truffle.api.object.Shape.Allocator

`declaredLocation, locationForType, locationForType, locationForValue, locationForValue`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### layout

    protected final LayoutImpl layout

#### objectArraySize

    protected int objectArraySize

#### objectFieldSize

    protected int objectFieldSize

#### primitiveFieldSize

    protected int primitiveFieldSize

#### primitiveArraySize

    protected int primitiveArraySize

#### hasPrimitiveArray

    protected boolean hasPrimitiveArray

#### depth

    protected int depth

### Constructor Detail

#### ShapeImpl.BaseAllocator

    protected ShapeImpl.BaseAllocator(LayoutImpl layout)

#### ShapeImpl.BaseAllocator

    protected ShapeImpl.BaseAllocator(ShapeImpl shape)

### Method Detail

#### moveLocation

    protected abstract Location moveLocation(Location oldLocation)

#### newObjectLocation

    protected abstract Location newObjectLocation(boolean useFinal,
                             boolean nonNull)

#### newTypedObjectLocation

    protected abstract Location newTypedObjectLocation(boolean useFinal,
                                  java.lang.Class<?> type,
                                  boolean nonNull)

#### newIntLocation

    protected abstract Location newIntLocation(boolean useFinal)

#### newDoubleLocation

    protected abstract Location newDoubleLocation(boolean useFinal)

#### newLongLocation

    protected abstract Location newLongLocation(boolean useFinal)

#### newBooleanLocation

    protected abstract Location newBooleanLocation(boolean useFinal)

#### constantLocation

    public final Location constantLocation(java.lang.Object value)

Specified by:
  `constantLocation` in class `Shape.Allocator`

#### locationForValue

    protected Location locationForValue(java.lang.Object value,
                            boolean useFinal,
                            boolean nonNull)

Specified by:
  `locationForValue` in class `Shape.Allocator`

#### locationForValueUpcast

    protected abstract Location locationForValueUpcast(java.lang.Object value,
                                  Location oldLocation)

#### locationForType

    protected Location locationForType(java.lang.Class<?> type,
                           boolean useFinal,
                           boolean nonNull)

Specified by:
  `locationForType` in class `Shape.Allocator`

#### newDualLocation

    protected Location newDualLocation(java.lang.Class<?> type)

#### newDualLocationForValue

    protected Locations.DualLocation newDualLocationForValue(java.lang.Object value)

#### newDeclaredDualLocation

    protected Location newDeclaredDualLocation(java.lang.Object value)

#### advance

    protected <T extends Location> T advance(T location0)

#### addLocation

    public ShapeImpl.BaseAllocator addLocation(Location location)

Specified by:
  `addLocation` in class `Shape.Allocator`