public abstract class com.oracle.truffle.api.object.Layout
minor version: 0
major version: 59
flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
this_class: com.oracle.truffle.api.object.Layout
super_class: java.lang.Object
{
public static final java.lang.String OPTION_PREFIX;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "truffle.object."
private static final com.oracle.truffle.api.object.LayoutFactory LAYOUT_FACTORY;
descriptor: Lcom/oracle/truffle/api/object/LayoutFactory;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lcom/oracle/truffle/api/object/Layout;
invokevirtual java.lang.Class.desiredAssertionStatus:()Z
ifne 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: putstatic com.oracle.truffle.api.object.Layout.$assertionsDisabled:Z
3: invokestatic com.oracle.truffle.api.object.Layout.loadLayoutFactory:()Lcom/oracle/truffle/api/object/LayoutFactory;
putstatic com.oracle.truffle.api.object.Layout.LAYOUT_FACTORY:Lcom/oracle/truffle/api/object/LayoutFactory;
return
LocalVariableTable:
Start End Slot Name Signature
protected void <init>();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/api/object/Layout;
public static com.oracle.truffle.api.object.Layout$Builder newLayout();
descriptor: ()Lcom/oracle/truffle/api/object/Layout$Builder;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: invokestatic com.oracle.truffle.api.CompilerAsserts.neverPartOfCompilation:()V
1: new com.oracle.truffle.api.object.Layout$Builder
dup
invokespecial com.oracle.truffle.api.object.Layout$Builder.<init>:()V
areturn
LocalVariableTable:
Start End Slot Name Signature
public static com.oracle.truffle.api.object.Layout createLayout();
descriptor: ()Lcom/oracle/truffle/api/object/Layout;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: invokestatic com.oracle.truffle.api.object.Layout.newLayout:()Lcom/oracle/truffle/api/object/Layout$Builder;
invokevirtual com.oracle.truffle.api.object.Layout$Builder.build:()Lcom/oracle/truffle/api/object/Layout;
areturn
LocalVariableTable:
Start End Slot Name Signature
public abstract com.oracle.truffle.api.object.DynamicObject newInstance(com.oracle.truffle.api.object.Shape);
descriptor: (Lcom/oracle/truffle/api/object/Shape;)Lcom/oracle/truffle/api/object/DynamicObject;
flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
RuntimeVisibleAnnotations:
java.lang.Deprecated()
MethodParameters:
Name Flags
shape
public abstract java.lang.Class<? extends com.oracle.truffle.api.object.DynamicObject> getType();
descriptor: ()Ljava/lang/Class;
flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
Signature: ()Ljava/lang/Class<+Lcom/oracle/truffle/api/object/DynamicObject;>;
public abstract com.oracle.truffle.api.object.Shape createShape(com.oracle.truffle.api.object.ObjectType);
descriptor: (Lcom/oracle/truffle/api/object/ObjectType;)Lcom/oracle/truffle/api/object/Shape;
flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
MethodParameters:
Name Flags
objectType
public abstract com.oracle.truffle.api.object.Shape createShape(com.oracle.truffle.api.object.ObjectType, java.lang.Object);
descriptor: (Lcom/oracle/truffle/api/object/ObjectType;Ljava/lang/Object;)Lcom/oracle/truffle/api/object/Shape;
flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
MethodParameters:
Name Flags
objectType
sharedData
public abstract com.oracle.truffle.api.object.Shape createShape(com.oracle.truffle.api.object.ObjectType, java.lang.Object, int);
descriptor: (Lcom/oracle/truffle/api/object/ObjectType;Ljava/lang/Object;I)Lcom/oracle/truffle/api/object/Shape;
flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
MethodParameters:
Name Flags
objectType
sharedData
flags
protected com.oracle.truffle.api.object.Shape buildShape(java.lang.Object, java.lang.Object, int, com.oracle.truffle.api.Assumption);
descriptor: (Ljava/lang/Object;Ljava/lang/Object;ILcom/oracle/truffle/api/Assumption;)Lcom/oracle/truffle/api/object/Shape;
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: new java.lang.UnsupportedOperationException
dup
invokespecial java.lang.UnsupportedOperationException.<init>:()V
athrow
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/api/object/Layout;
0 1 1 dynamicType Ljava/lang/Object;
0 1 2 sharedData Ljava/lang/Object;
0 1 3 flags I
0 1 4 singleContextAssumption Lcom/oracle/truffle/api/Assumption;
MethodParameters:
Name Flags
dynamicType
sharedData
flags
singleContextAssumption
public abstract com.oracle.truffle.api.object.Shape$Allocator createAllocator();
descriptor: ()Lcom/oracle/truffle/api/object/Shape$Allocator;
flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
protected static com.oracle.truffle.api.object.LayoutFactory getFactory();
descriptor: ()Lcom/oracle/truffle/api/object/LayoutFactory;
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: getstatic com.oracle.truffle.api.object.Layout.LAYOUT_FACTORY:Lcom/oracle/truffle/api/object/LayoutFactory;
areturn
LocalVariableTable:
Start End Slot Name Signature
private static com.oracle.truffle.api.object.LayoutFactory loadLayoutFactory();
descriptor: ()Lcom/oracle/truffle/api/object/LayoutFactory;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=2, args_size=0
0: invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
ldc Lcom/oracle/truffle/api/object/LayoutFactory;
invokeinterface com.oracle.truffle.api.TruffleRuntime.getCapability:(Ljava/lang/Class;)Ljava/lang/Object;
checkcast com.oracle.truffle.api.object.LayoutFactory
astore 0
start local 0 1: aload 0
ifnonnull 6
2: ldc Lcom/oracle/truffle/api/object/LayoutFactory;
ldc Lcom/oracle/truffle/api/object/Layout;
invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
invokestatic java.util.ServiceLoader.load:(Ljava/lang/Class;Ljava/lang/ClassLoader;)Ljava/util/ServiceLoader;
astore 1
start local 1 3: aload 1
invokestatic com.oracle.truffle.api.object.Layout.selectLayoutFactory:(Ljava/lang/Iterable;)Lcom/oracle/truffle/api/object/LayoutFactory;
astore 0
4: aload 0
ifnonnull 6
5: ldc "LayoutFactory not found"
invokestatic com.oracle.truffle.api.CompilerDirectives.shouldNotReachHere:(Ljava/lang/String;)Ljava/lang/RuntimeException;
athrow
end local 1 6: StackMap locals: com.oracle.truffle.api.object.LayoutFactory
StackMap stack:
aload 0
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
1 7 0 layoutFactory Lcom/oracle/truffle/api/object/LayoutFactory;
3 6 1 serviceLoader Ljava/util/ServiceLoader<Lcom/oracle/truffle/api/object/LayoutFactory;>;
private static com.oracle.truffle.api.object.LayoutFactory selectLayoutFactory(java.lang.Iterable<com.oracle.truffle.api.object.LayoutFactory>);
descriptor: (Ljava/lang/Iterable;)Lcom/oracle/truffle/api/object/LayoutFactory;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=5, args_size=1
start local 0 0: ldc "truffle.object.LayoutFactory"
invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
astore 1
start local 1 1: aconst_null
astore 2
start local 2 2: aload 0
invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
astore 4
goto 13
StackMap locals: java.lang.Iterable java.lang.String com.oracle.truffle.api.object.LayoutFactory top java.util.Iterator
StackMap stack:
3: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.object.LayoutFactory
astore 3
start local 3 4: aload 1
ifnull 7
5: aload 3
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
aload 1
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 13
6: aload 3
areturn
7: StackMap locals: java.lang.Iterable java.lang.String com.oracle.truffle.api.object.LayoutFactory com.oracle.truffle.api.object.LayoutFactory java.util.Iterator
StackMap stack:
aload 2
ifnonnull 10
8: aload 3
astore 2
9: goto 13
StackMap locals:
StackMap stack:
10: aload 3
invokeinterface com.oracle.truffle.api.object.LayoutFactory.getPriority:()I
aload 2
invokeinterface com.oracle.truffle.api.object.LayoutFactory.getPriority:()I
if_icmplt 13
11: getstatic com.oracle.truffle.api.object.Layout.$assertionsDisabled:Z
ifne 12
aload 3
invokeinterface com.oracle.truffle.api.object.LayoutFactory.getPriority:()I
aload 2
invokeinterface com.oracle.truffle.api.object.LayoutFactory.getPriority:()I
if_icmpne 12
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
12: StackMap locals:
StackMap stack:
aload 3
astore 2
end local 3 13: StackMap locals: java.lang.Iterable java.lang.String com.oracle.truffle.api.object.LayoutFactory top java.util.Iterator
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
14: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 availableLayoutFactories Ljava/lang/Iterable<Lcom/oracle/truffle/api/object/LayoutFactory;>;
1 15 1 layoutFactoryImplName Ljava/lang/String;
2 15 2 bestLayoutFactory Lcom/oracle/truffle/api/object/LayoutFactory;
4 13 3 currentLayoutFactory Lcom/oracle/truffle/api/object/LayoutFactory;
Signature: (Ljava/lang/Iterable<Lcom/oracle/truffle/api/object/LayoutFactory;>;)Lcom/oracle/truffle/api/object/LayoutFactory;
MethodParameters:
Name Flags
availableLayoutFactories
protected static java.util.EnumSet<com.oracle.truffle.api.object.Layout$ImplicitCast> getAllowedImplicitCasts(com.oracle.truffle.api.object.Layout$Builder);
descriptor: (Lcom/oracle/truffle/api/object/Layout$Builder;)Ljava/util/EnumSet;
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.api.object.Layout$Builder.allowedImplicitCasts:Ljava/util/EnumSet;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 builder Lcom/oracle/truffle/api/object/Layout$Builder;
Signature: (Lcom/oracle/truffle/api/object/Layout$Builder;)Ljava/util/EnumSet<Lcom/oracle/truffle/api/object/Layout$ImplicitCast;>;
MethodParameters:
Name Flags
builder
protected static boolean getPolymorphicUnboxing(com.oracle.truffle.api.object.Layout$Builder);
descriptor: (Lcom/oracle/truffle/api/object/Layout$Builder;)Z
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.api.object.Layout$Builder.polymorphicUnboxing:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 builder Lcom/oracle/truffle/api/object/Layout$Builder;
MethodParameters:
Name Flags
builder
protected static java.lang.Class<? extends com.oracle.truffle.api.object.DynamicObject> getType(com.oracle.truffle.api.object.Layout$Builder);
descriptor: (Lcom/oracle/truffle/api/object/Layout$Builder;)Ljava/lang/Class;
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.api.object.Layout$Builder.dynamicObjectClass:Ljava/lang/Class;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 builder Lcom/oracle/truffle/api/object/Layout$Builder;
Signature: (Lcom/oracle/truffle/api/object/Layout$Builder;)Ljava/lang/Class<+Lcom/oracle/truffle/api/object/DynamicObject;>;
MethodParameters:
Name Flags
builder
}
SourceFile: "Layout.java"
NestMembers:
com.oracle.truffle.api.object.Layout$Access com.oracle.truffle.api.object.Layout$Builder com.oracle.truffle.api.object.Layout$ImplicitCast
InnerClasses:
protected abstract Access = com.oracle.truffle.api.object.Layout$Access of com.oracle.truffle.api.object.Layout
public final Builder = com.oracle.truffle.api.object.Layout$Builder of com.oracle.truffle.api.object.Layout
public final ImplicitCast = com.oracle.truffle.api.object.Layout$ImplicitCast of com.oracle.truffle.api.object.Layout
public abstract Allocator = com.oracle.truffle.api.object.Shape$Allocator of com.oracle.truffle.api.object.Shape