Package 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` `BaseAllocator​(LayoutImpl layout)`
`protected` `BaseAllocator​(ShapeImpl shape)`

### Method Summary

All Methods Instance Methods Abstract Methods Concrete 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

#### BaseAllocator

    protected BaseAllocator​(LayoutImpl layout)

#### BaseAllocator

    protected 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`