public final class org.eclipse.jdt.internal.core.nd.field.StructDef<T>
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: org.eclipse.jdt.internal.core.nd.field.StructDef
super_class: java.lang.Object
{
java.lang.Class<T> clazz;
descriptor: Ljava/lang/Class;
flags: (0x0000)
Signature: Ljava/lang/Class<TT;>;
private org.eclipse.jdt.internal.core.nd.field.StructDef<? super T> superClass;
descriptor: Lorg/eclipse/jdt/internal/core/nd/field/StructDef;
flags: (0x0002) ACC_PRIVATE
Signature: Lorg/eclipse/jdt/internal/core/nd/field/StructDef<-TT;>;
private java.util.Set<org.eclipse.jdt.internal.core.nd.field.StructDef<?>> dependencies;
descriptor: Ljava/util/Set;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/Set<Lorg/eclipse/jdt/internal/core/nd/field/StructDef<*>;>;
private java.util.List<org.eclipse.jdt.internal.core.nd.field.IField> fields;
descriptor: Ljava/util/List;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/List<Lorg/eclipse/jdt/internal/core/nd/field/IField;>;
private boolean doneCalled;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private boolean offsetsComputed;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private java.util.List<org.eclipse.jdt.internal.core.nd.field.StructDef<? extends T>> dependents;
descriptor: Ljava/util/List;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/List<Lorg/eclipse/jdt/internal/core/nd/field/StructDef<+TT;>;>;
private int size;
descriptor: I
flags: (0x0002) ACC_PRIVATE
java.util.List<org.eclipse.jdt.internal.core.nd.field.IDestructableField> destructableFields;
descriptor: Ljava/util/List;
flags: (0x0000)
Signature: Ljava/util/List<Lorg/eclipse/jdt/internal/core/nd/field/IDestructableField;>;
boolean refCounted;
descriptor: Z
flags: (0x0000)
private java.util.List<org.eclipse.jdt.internal.core.nd.field.IRefCountedField> refCountedFields;
descriptor: Ljava/util/List;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/List<Lorg/eclipse/jdt/internal/core/nd/field/IRefCountedField;>;
private java.util.List<org.eclipse.jdt.internal.core.nd.field.IRefCountedField> ownerFields;
descriptor: Ljava/util/List;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/List<Lorg/eclipse/jdt/internal/core/nd/field/IRefCountedField;>;
boolean isAbstract;
descriptor: Z
flags: (0x0000)
private org.eclipse.jdt.internal.core.nd.ITypeFactory<T> factory;
descriptor: Lorg/eclipse/jdt/internal/core/nd/ITypeFactory;
flags: (0x0002) ACC_PRIVATE
Signature: Lorg/eclipse/jdt/internal/core/nd/ITypeFactory<TT;>;
protected boolean hasUserDestructor;
descriptor: Z
flags: (0x0004) ACC_PROTECTED
private org.eclipse.jdt.internal.core.nd.field.StructDef$DeletionSemantics deletionSemantics;
descriptor: Lorg/eclipse/jdt/internal/core/nd/field/StructDef$DeletionSemantics;
flags: (0x0002) ACC_PRIVATE
final org.eclipse.jdt.internal.core.nd.db.ModificationLog$Tag destructTag;
descriptor: Lorg/eclipse/jdt/internal/core/nd/db/ModificationLog$Tag;
flags: (0x0010) ACC_FINAL
private boolean isNdNode;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private static volatile int[] $SWITCH_TABLE$org$eclipse$jdt$internal$core$nd$field$StructDef$DeletionSemantics;
descriptor: [I
flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC
private void <init>(java.lang.Class<T>);
descriptor: (Ljava/lang/Class;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
aconst_null
invokespecial org.eclipse.jdt.internal.core.nd.field.StructDef.<init>:(Ljava/lang/Class;Lorg/eclipse/jdt/internal/core/nd/field/StructDef;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/eclipse/jdt/internal/core/nd/field/StructDef<TT;>;
0 2 1 clazz Ljava/lang/Class<TT;>;
Signature: (Ljava/lang/Class<TT;>;)V
MethodParameters:
Name Flags
clazz
private void <init>(java.lang.Class<T>, org.eclipse.jdt.internal.core.nd.field.StructDef<? super T>);
descriptor: (Ljava/lang/Class;Lorg/eclipse/jdt/internal/core/nd/field/StructDef;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
aload 1
invokevirtual java.lang.Class.getModifiers:()I
invokestatic java.lang.reflect.Modifier.isAbstract:(I)Z
invokespecial org.eclipse.jdt.internal.core.nd.field.StructDef.<init>:(Ljava/lang/Class;Lorg/eclipse/jdt/internal/core/nd/field/StructDef;Z)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/eclipse/jdt/internal/core/nd/field/StructDef<TT;>;
0 2 1 clazz Ljava/lang/Class<TT;>;
0 2 2 superClass Lorg/eclipse/jdt/internal/core/nd/field/StructDef<-TT;>;
Signature: (Ljava/lang/Class<TT;>;Lorg/eclipse/jdt/internal/core/nd/field/StructDef<-TT;>;)V
MethodParameters:
Name Flags
clazz
superClass
private void <init>(java.lang.Class<T>, org.eclipse.jdt.internal.core.nd.field.StructDef<? super T>, );
descriptor: (Ljava/lang/Class;Lorg/eclipse/jdt/internal/core/nd/field/StructDef;Z)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
putfield org.eclipse.jdt.internal.core.nd.field.StructDef.dependencies:Ljava/util/Set;
2: aload 0
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
putfield org.eclipse.jdt.internal.core.nd.field.StructDef.fields:Ljava/util/List;
3: aload 0
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
putfield org.eclipse.jdt.internal.core.nd.field.StructDef.dependents:Ljava/util/List;
4: aload 0
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
putfield org.eclipse.jdt.internal.core.nd.field.StructDef.destructableFields:Ljava/util/List;
5: aload 0
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
putfield org.eclipse.jdt.internal.core.nd.field.StructDef.refCountedFields:Ljava/util/List;
6: aload 0
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
putfield org.eclipse.jdt.internal.core.nd.field.StructDef.ownerFields:Ljava/util/List;
7: aload 0
new java.lang.StringBuilder
dup
ldc "Destructing struct "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic org.eclipse.jdt.internal.core.nd.db.ModificationLog.createTag:(Ljava/lang/String;)Lorg/eclipse/jdt/internal/core/nd/db/ModificationLog$Tag;
putfield org.eclipse.jdt.internal.core.nd.field.StructDef.destructTag:Lorg/eclipse/jdt/internal/core/nd/db/ModificationLog$Tag;
8: aload 0
aload 1
putfield org.eclipse.jdt.internal.core.nd.field.StructDef.clazz:Ljava/lang/Class;
9: aload 0
ldc Lorg/eclipse/jdt/internal/core/nd/NdNode;
aload 1
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
putfield org.eclipse.jdt.internal.core.nd.field.StructDef.isNdNode:Z
10: aload 0
aload 2
putfield org.eclipse.jdt.internal.core.nd.field.StructDef.superClass:Lorg/eclipse/jdt/internal/core/nd/field/StructDef;
11: aload 0
getfield org.eclipse.jdt.internal.core.nd.field.StructDef.superClass:Lorg/eclipse/jdt/internal/core/nd/field/StructDef;
ifnull 13
12: aload 0
aload 0
getfield org.eclipse.jdt.internal.core.nd.field.StructDef.superClass:Lorg/eclipse/jdt/internal/core/nd/field/StructDef;
invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef.addDependency:(Lorg/eclipse/jdt/internal/core/nd/field/StructDef;)V
13: StackMap locals: org.eclipse.jdt.internal.core.nd.field.StructDef java.lang.Class org.eclipse.jdt.internal.core.nd.field.StructDef int
StackMap stack:
aload 0
iload 3
putfield org.eclipse.jdt.internal.core.nd.field.StructDef.isAbstract:Z
14: aload 1
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
astore 4
start local 4 15: aload 0
getfield org.eclipse.jdt.internal.core.nd.field.StructDef.isAbstract:Z
ifne 22
16: aload 1
iconst_2
anewarray java.lang.Class
dup
iconst_0
ldc Lorg/eclipse/jdt/internal/core/nd/Nd;
aastore
dup
iconst_1
getstatic java.lang.Long.TYPE:Ljava/lang/Class;
aastore
invokevirtual java.lang.Class.getConstructor:([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
astore 5
start local 5 17: goto 23
end local 5 StackMap locals: org.eclipse.jdt.internal.core.nd.field.StructDef java.lang.Class org.eclipse.jdt.internal.core.nd.field.StructDef int java.lang.String
StackMap stack: java.lang.Exception
18: pop
19: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "The node class "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
20: ldc " does not have an appropriate constructor for it to be used with Nd"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
21: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
22: StackMap locals:
StackMap stack:
aconst_null
astore 5
start local 5 23: StackMap locals: java.lang.reflect.Constructor
StackMap stack:
aload 0
ldc Lorg/eclipse/jdt/internal/core/nd/IDestructable;
aload 1
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
putfield org.eclipse.jdt.internal.core.nd.field.StructDef.hasUserDestructor:Z
24: aload 0
new org.eclipse.jdt.internal.core.nd.field.StructDef$1
dup
aload 0
aload 4
aload 5
invokespecial org.eclipse.jdt.internal.core.nd.field.StructDef$1.<init>:(Lorg/eclipse/jdt/internal/core/nd/field/StructDef;Ljava/lang/String;Ljava/lang/reflect/Constructor;)V
putfield org.eclipse.jdt.internal.core.nd.field.StructDef.factory:Lorg/eclipse/jdt/internal/core/nd/ITypeFactory;
25: return
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 26 0 this Lorg/eclipse/jdt/internal/core/nd/field/StructDef<TT;>;
0 26 1 clazz Ljava/lang/Class<TT;>;
0 26 2 superClass Lorg/eclipse/jdt/internal/core/nd/field/StructDef<-TT;>;
0 26 3 isAbstract Z
15 26 4 fullyQualifiedClassName Ljava/lang/String;
17 18 5 constructor Ljava/lang/reflect/Constructor<TT;>;
23 26 5 constructor Ljava/lang/reflect/Constructor<TT;>;
Exception table:
from to target type
16 17 18 Class java.lang.NoSuchMethodException
16 17 18 Class java.lang.SecurityException
Signature: (Ljava/lang/Class<TT;>;Lorg/eclipse/jdt/internal/core/nd/field/StructDef<-TT;>;Z)V
MethodParameters:
Name Flags
clazz
superClass
isAbstract
public void addDependency(org.eclipse.jdt.internal.core.nd.field.StructDef<?>);
descriptor: (Lorg/eclipse/jdt/internal/core/nd/field/StructDef;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 1
new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
aload 0
invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef.hasIndirectDependent:(Ljava/util/Set;Lorg/eclipse/jdt/internal/core/nd/field/StructDef;)Z
ifeq 5
1: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "Circular dependency detected. Struct "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
2: aload 0
invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef.getStructName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " and struct "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef.getStructName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
3: ldc " both depend on one another"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
4: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals:
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.core.nd.field.StructDef.dependencies:Ljava/util/Set;
aload 1
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
ifeq 7
6: aload 0
getfield org.eclipse.jdt.internal.core.nd.field.StructDef.superClass:Lorg/eclipse/jdt/internal/core/nd/field/StructDef;
getfield org.eclipse.jdt.internal.core.nd.field.StructDef.dependents:Ljava/util/List;
aload 0
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
7: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/eclipse/jdt/internal/core/nd/field/StructDef<TT;>;
0 8 1 newDependency Lorg/eclipse/jdt/internal/core/nd/field/StructDef<*>;
Signature: (Lorg/eclipse/jdt/internal/core/nd/field/StructDef<*>;)V
MethodParameters:
Name Flags
newDependency
private boolean hasIndirectDependent(java.util.Set<org.eclipse.jdt.internal.core.nd.field.StructDef<?>>, org.eclipse.jdt.internal.core.nd.field.StructDef<?>);
descriptor: (Ljava/util/Set;Lorg/eclipse/jdt/internal/core/nd/field/StructDef;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.eclipse.jdt.internal.core.nd.field.StructDef.dependents:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 4
goto 8
StackMap locals: org.eclipse.jdt.internal.core.nd.field.StructDef java.util.Set org.eclipse.jdt.internal.core.nd.field.StructDef top java.util.Iterator
StackMap stack:
1: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.eclipse.jdt.internal.core.nd.field.StructDef
astore 3
start local 3 2: aload 1
aload 3
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
ifne 4
3: goto 8
4: StackMap locals: org.eclipse.jdt.internal.core.nd.field.StructDef java.util.Set org.eclipse.jdt.internal.core.nd.field.StructDef org.eclipse.jdt.internal.core.nd.field.StructDef java.util.Iterator
StackMap stack:
aload 3
aload 2
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifeq 6
5: iconst_1
ireturn
6: StackMap locals:
StackMap stack:
aload 3
aload 1
aload 2
invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef.hasIndirectDependent:(Ljava/util/Set;Lorg/eclipse/jdt/internal/core/nd/field/StructDef;)Z
ifeq 8
7: iconst_1
ireturn
end local 3 8: StackMap locals: org.eclipse.jdt.internal.core.nd.field.StructDef java.util.Set org.eclipse.jdt.internal.core.nd.field.StructDef top java.util.Iterator
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
9: iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/eclipse/jdt/internal/core/nd/field/StructDef<TT;>;
0 10 1 visited Ljava/util/Set<Lorg/eclipse/jdt/internal/core/nd/field/StructDef<*>;>;
0 10 2 structDef Lorg/eclipse/jdt/internal/core/nd/field/StructDef<*>;
2 8 3 next Lorg/eclipse/jdt/internal/core/nd/field/StructDef<*>;
Signature: (Ljava/util/Set<Lorg/eclipse/jdt/internal/core/nd/field/StructDef<*>;>;Lorg/eclipse/jdt/internal/core/nd/field/StructDef<*>;)Z
MethodParameters:
Name Flags
visited
structDef
public java.lang.Class<T> getStructClass();
descriptor: ()Ljava/lang/Class;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.eclipse.jdt.internal.core.nd.field.StructDef.clazz:Ljava/lang/Class;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/eclipse/jdt/internal/core/nd/field/StructDef<TT;>;
Signature: ()Ljava/lang/Class<TT;>;
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.eclipse.jdt.internal.core.nd.field.StructDef.clazz:Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/eclipse/jdt/internal/core/nd/field/StructDef<TT;>;
public static <T> org.eclipse.jdt.internal.core.nd.field.StructDef<T> createAbstract(java.lang.Class<T>);
descriptor: (Ljava/lang/Class;)Lorg/eclipse/jdt/internal/core/nd/field/StructDef;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=1, args_size=1
start local 0 0: new org.eclipse.jdt.internal.core.nd.field.StructDef
dup
aload 0
aconst_null
iconst_1
invokespecial org.eclipse.jdt.internal.core.nd.field.StructDef.<init>:(Ljava/lang/Class;Lorg/eclipse/jdt/internal/core/nd/field/StructDef;Z)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 clazz Ljava/lang/Class<TT;>;
Signature: <T:Ljava/lang/Object;>(Ljava/lang/Class<TT;>;)Lorg/eclipse/jdt/internal/core/nd/field/StructDef<TT;>;
MethodParameters:
Name Flags
clazz
public static <T> org.eclipse.jdt.internal.core.nd.field.StructDef<T> createAbstract(java.lang.Class<T>, org.eclipse.jdt.internal.core.nd.field.StructDef<? super T>);
descriptor: (Ljava/lang/Class;Lorg/eclipse/jdt/internal/core/nd/field/StructDef;)Lorg/eclipse/jdt/internal/core/nd/field/StructDef;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: new org.eclipse.jdt.internal.core.nd.field.StructDef
dup
aload 0
aload 1
iconst_1
invokespecial org.eclipse.jdt.internal.core.nd.field.StructDef.<init>:(Ljava/lang/Class;Lorg/eclipse/jdt/internal/core/nd/field/StructDef;Z)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 clazz Ljava/lang/Class<TT;>;
0 1 1 superClass Lorg/eclipse/jdt/internal/core/nd/field/StructDef<-TT;>;
Signature: <T:Ljava/lang/Object;>(Ljava/lang/Class<TT;>;Lorg/eclipse/jdt/internal/core/nd/field/StructDef<-TT;>;)Lorg/eclipse/jdt/internal/core/nd/field/StructDef<TT;>;
MethodParameters:
Name Flags
clazz
superClass
public static <T> org.eclipse.jdt.internal.core.nd.field.StructDef<T> create(java.lang.Class<T>);
descriptor: (Ljava/lang/Class;)Lorg/eclipse/jdt/internal/core/nd/field/StructDef;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new org.eclipse.jdt.internal.core.nd.field.StructDef
dup
aload 0
invokespecial org.eclipse.jdt.internal.core.nd.field.StructDef.<init>:(Ljava/lang/Class;)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 clazz Ljava/lang/Class<TT;>;
Signature: <T:Ljava/lang/Object;>(Ljava/lang/Class<TT;>;)Lorg/eclipse/jdt/internal/core/nd/field/StructDef<TT;>;
MethodParameters:
Name Flags
clazz
public static <T> org.eclipse.jdt.internal.core.nd.field.StructDef<T> create(java.lang.Class<T>, org.eclipse.jdt.internal.core.nd.field.StructDef<? super T>);
descriptor: (Ljava/lang/Class;Lorg/eclipse/jdt/internal/core/nd/field/StructDef;)Lorg/eclipse/jdt/internal/core/nd/field/StructDef;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: new org.eclipse.jdt.internal.core.nd.field.StructDef
dup
aload 0
aload 1
invokespecial org.eclipse.jdt.internal.core.nd.field.StructDef.<init>:(Ljava/lang/Class;Lorg/eclipse/jdt/internal/core/nd/field/StructDef;)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 clazz Ljava/lang/Class<TT;>;
0 1 1 superClass Lorg/eclipse/jdt/internal/core/nd/field/StructDef<-TT;>;
Signature: <T:Ljava/lang/Object;>(Ljava/lang/Class<TT;>;Lorg/eclipse/jdt/internal/core/nd/field/StructDef<-TT;>;)Lorg/eclipse/jdt/internal/core/nd/field/StructDef<TT;>;
MethodParameters:
Name Flags
clazz
superClass
protected boolean isReadyForDeletion(org.eclipse.jdt.internal.core.nd.Nd, long);
descriptor: (Lorg/eclipse/jdt/internal/core/nd/Nd;J)Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=7, args_size=3
start local 0 start local 1 start local 2 0: getstatic java.util.Collections.EMPTY_LIST:Ljava/util/List;
astore 4
start local 4 1: invokestatic org.eclipse.jdt.internal.core.nd.field.StructDef.$SWITCH_TABLE$org$eclipse$jdt$internal$core$nd$field$StructDef$DeletionSemantics:()[I
aload 0
getfield org.eclipse.jdt.internal.core.nd.field.StructDef.deletionSemantics:Lorg/eclipse/jdt/internal/core/nd/field/StructDef$DeletionSemantics;
invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef$DeletionSemantics.ordinal:()I
iaload
tableswitch { // 1 - 3
1: 2
2: 3
3: 4
default: 5
}
2: StackMap locals: java.util.List
StackMap stack:
iconst_0
ireturn
3: StackMap locals:
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.core.nd.field.StructDef.ownerFields:Ljava/util/List;
astore 4
goto 5
4: StackMap locals:
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.core.nd.field.StructDef.refCountedFields:Ljava/util/List;
astore 4
5: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 6
goto 9
StackMap locals: org.eclipse.jdt.internal.core.nd.field.StructDef org.eclipse.jdt.internal.core.nd.Nd long java.util.List top java.util.Iterator
StackMap stack:
6: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.eclipse.jdt.internal.core.nd.field.IRefCountedField
astore 5
start local 5 7: aload 5
aload 1
lload 2
invokeinterface org.eclipse.jdt.internal.core.nd.field.IRefCountedField.hasReferences:(Lorg/eclipse/jdt/internal/core/nd/Nd;J)Z
ifeq 9
8: iconst_0
ireturn
end local 5 9: StackMap locals:
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 6
10: aload 0
getfield org.eclipse.jdt.internal.core.nd.field.StructDef.superClass:Lorg/eclipse/jdt/internal/core/nd/field/StructDef;
astore 5
start local 5 11: aload 5
ifnull 13
aload 5
getfield org.eclipse.jdt.internal.core.nd.field.StructDef.deletionSemantics:Lorg/eclipse/jdt/internal/core/nd/field/StructDef$DeletionSemantics;
getstatic org.eclipse.jdt.internal.core.nd.field.StructDef$DeletionSemantics.EXPLICIT:Lorg/eclipse/jdt/internal/core/nd/field/StructDef$DeletionSemantics;
if_acmpeq 13
12: aload 5
aload 1
lload 2
invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef.isReadyForDeletion:(Lorg/eclipse/jdt/internal/core/nd/Nd;J)Z
ireturn
13: StackMap locals: org.eclipse.jdt.internal.core.nd.field.StructDef org.eclipse.jdt.internal.core.nd.Nd long java.util.List org.eclipse.jdt.internal.core.nd.field.StructDef
StackMap stack:
iconst_1
ireturn
end local 5 end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lorg/eclipse/jdt/internal/core/nd/field/StructDef<TT;>;
0 14 1 dom Lorg/eclipse/jdt/internal/core/nd/Nd;
0 14 2 address J
1 14 4 toIterate Ljava/util/List<Lorg/eclipse/jdt/internal/core/nd/field/IRefCountedField;>;
7 9 5 next Lorg/eclipse/jdt/internal/core/nd/field/IRefCountedField;
11 14 5 localSuperClass Lorg/eclipse/jdt/internal/core/nd/field/StructDef<-TT;>;
MethodParameters:
Name Flags
dom
address
protected boolean hasDestructableFields();
descriptor: ()Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.eclipse.jdt.internal.core.nd.field.StructDef.destructableFields:Ljava/util/List;
invokeinterface java.util.List.isEmpty:()Z
ifeq 3
1: aload 0
getfield org.eclipse.jdt.internal.core.nd.field.StructDef.superClass:Lorg/eclipse/jdt/internal/core/nd/field/StructDef;
ifnull 2
aload 0
getfield org.eclipse.jdt.internal.core.nd.field.StructDef.superClass:Lorg/eclipse/jdt/internal/core/nd/field/StructDef;
invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef.hasDestructableFields:()Z
ifne 3
2: StackMap locals:
StackMap stack:
iconst_0
ireturn
StackMap locals:
StackMap stack:
3: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/eclipse/jdt/internal/core/nd/field/StructDef<TT;>;
public org.eclipse.jdt.internal.core.nd.field.StructDef$DeletionSemantics getDeletionSemantics();
descriptor: ()Lorg/eclipse/jdt/internal/core/nd/field/StructDef$DeletionSemantics;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.eclipse.jdt.internal.core.nd.field.StructDef.deletionSemantics:Lorg/eclipse/jdt/internal/core/nd/field/StructDef$DeletionSemantics;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/eclipse/jdt/internal/core/nd/field/StructDef<TT;>;
private boolean areAllDependenciesResolved();
descriptor: ()Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=3, args_size=1
start local 0 0: aload 0
getfield org.eclipse.jdt.internal.core.nd.field.StructDef.dependencies:Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 2
goto 4
StackMap locals: org.eclipse.jdt.internal.core.nd.field.StructDef top java.util.Iterator
StackMap stack:
1: aload 2
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.eclipse.jdt.internal.core.nd.field.StructDef
astore 1
start local 1 2: aload 1
invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef.areOffsetsComputed:()Z
ifne 4
3: iconst_0
ireturn
end local 1 4: StackMap locals:
StackMap stack:
aload 2
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
5: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/eclipse/jdt/internal/core/nd/field/StructDef<TT;>;
2 4 1 next Lorg/eclipse/jdt/internal/core/nd/field/StructDef<*>;
public void done();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield org.eclipse.jdt.internal.core.nd.field.StructDef.doneCalled:Z
ifeq 2
1: new java.lang.IllegalStateException
dup
ldc "May not call done() more than once"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield org.eclipse.jdt.internal.core.nd.field.StructDef.doneCalled:Z
3: aload 0
invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef.areAllDependenciesResolved:()Z
ifeq 5
4: aload 0
invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef.computeOffsets:()V
5: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/eclipse/jdt/internal/core/nd/field/StructDef<TT;>;
public void add(org.eclipse.jdt.internal.core.nd.field.IField);
descriptor: (Lorg/eclipse/jdt/internal/core/nd/field/IField;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef.checkMutable:()V
1: aload 0
getfield org.eclipse.jdt.internal.core.nd.field.StructDef.fields:Ljava/util/List;
aload 1
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/eclipse/jdt/internal/core/nd/field/StructDef<TT;>;
0 3 1 toAdd Lorg/eclipse/jdt/internal/core/nd/field/IField;
MethodParameters:
Name Flags
toAdd
public void addDestructableField(org.eclipse.jdt.internal.core.nd.field.IDestructableField);
descriptor: (Lorg/eclipse/jdt/internal/core/nd/field/IDestructableField;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef.checkMutable:()V
1: aload 0
getfield org.eclipse.jdt.internal.core.nd.field.StructDef.destructableFields:Ljava/util/List;
aload 1
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/eclipse/jdt/internal/core/nd/field/StructDef<TT;>;
0 3 1 field Lorg/eclipse/jdt/internal/core/nd/field/IDestructableField;
MethodParameters:
Name Flags
field
public org.eclipse.jdt.internal.core.nd.field.StructDef<T> useStandardRefCounting();
descriptor: ()Lorg/eclipse/jdt/internal/core/nd/field/StructDef;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef.checkMutable:()V
1: aload 0
iconst_1
putfield org.eclipse.jdt.internal.core.nd.field.StructDef.refCounted:Z
2: aload 0
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/eclipse/jdt/internal/core/nd/field/StructDef<TT;>;
Signature: ()Lorg/eclipse/jdt/internal/core/nd/field/StructDef<TT;>;
public void addRefCountedField(org.eclipse.jdt.internal.core.nd.field.IRefCountedField);
descriptor: (Lorg/eclipse/jdt/internal/core/nd/field/IRefCountedField;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef.checkMutable:()V
1: aload 0
getfield org.eclipse.jdt.internal.core.nd.field.StructDef.refCountedFields:Ljava/util/List;
aload 1
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/eclipse/jdt/internal/core/nd/field/StructDef<TT;>;
0 3 1 result Lorg/eclipse/jdt/internal/core/nd/field/IRefCountedField;
MethodParameters:
Name Flags
result
public void addOwnerField(org.eclipse.jdt.internal.core.nd.field.IRefCountedField);
descriptor: (Lorg/eclipse/jdt/internal/core/nd/field/IRefCountedField;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef.checkMutable:()V
1: aload 0
getfield org.eclipse.jdt.internal.core.nd.field.StructDef.ownerFields:Ljava/util/List;
aload 1
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/eclipse/jdt/internal/core/nd/field/StructDef<TT;>;
0 3 1 result Lorg/eclipse/jdt/internal/core/nd/field/IRefCountedField;
MethodParameters:
Name Flags
result
public boolean areOffsetsComputed();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.eclipse.jdt.internal.core.nd.field.StructDef.offsetsComputed:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/eclipse/jdt/internal/core/nd/field/StructDef<TT;>;
public int size();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef.checkNotMutable:()V
1: aload 0
getfield org.eclipse.jdt.internal.core.nd.field.StructDef.size:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/eclipse/jdt/internal/core/nd/field/StructDef<TT;>;
void checkNotMutable();
descriptor: ()V
flags: (0x0000)
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield org.eclipse.jdt.internal.core.nd.field.StructDef.offsetsComputed:Z
ifne 2
1: new java.lang.IllegalStateException
dup
ldc "Must call done() before using the struct"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/eclipse/jdt/internal/core/nd/field/StructDef<TT;>;
private void checkMutable();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield org.eclipse.jdt.internal.core.nd.field.StructDef.doneCalled:Z
ifeq 2
1: new java.lang.IllegalStateException
dup
ldc "May not modify a StructDef after done() has been called"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/eclipse/jdt/internal/core/nd/field/StructDef<TT;>;
private void computeOffsets();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=4, args_size=1
start local 0 0: aload 0
getfield org.eclipse.jdt.internal.core.nd.field.StructDef.superClass:Lorg/eclipse/jdt/internal/core/nd/field/StructDef;
ifnonnull 1
iconst_0
goto 2
StackMap locals:
StackMap stack:
1: aload 0
getfield org.eclipse.jdt.internal.core.nd.field.StructDef.superClass:Lorg/eclipse/jdt/internal/core/nd/field/StructDef;
invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef.size:()I
StackMap locals:
StackMap stack: int
2: istore 1
start local 1 3: aload 0
getfield org.eclipse.jdt.internal.core.nd.field.StructDef.fields:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 3
goto 8
StackMap locals: org.eclipse.jdt.internal.core.nd.field.StructDef int top java.util.Iterator
StackMap stack:
4: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.eclipse.jdt.internal.core.nd.field.IField
astore 2
start local 2 5: iload 1
aload 2
invokeinterface org.eclipse.jdt.internal.core.nd.field.IField.getAlignment:()I
invokestatic org.eclipse.jdt.internal.core.nd.util.MathUtils.roundUpToNearestMultiple:(II)I
istore 1
6: aload 2
iload 1
invokeinterface org.eclipse.jdt.internal.core.nd.field.IField.setOffset:(I)V
7: iload 1
aload 2
invokeinterface org.eclipse.jdt.internal.core.nd.field.IField.getRecordSize:()I
iadd
istore 1
end local 2 8: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 4
9: aload 0
iload 1
putfield org.eclipse.jdt.internal.core.nd.field.StructDef.size:I
10: aload 0
getfield org.eclipse.jdt.internal.core.nd.field.StructDef.refCounted:Z
ifeq 13
11: aload 0
getstatic org.eclipse.jdt.internal.core.nd.field.StructDef$DeletionSemantics.REFCOUNTED:Lorg/eclipse/jdt/internal/core/nd/field/StructDef$DeletionSemantics;
putfield org.eclipse.jdt.internal.core.nd.field.StructDef.deletionSemantics:Lorg/eclipse/jdt/internal/core/nd/field/StructDef$DeletionSemantics;
12: goto 20
13: StackMap locals: org.eclipse.jdt.internal.core.nd.field.StructDef int
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.core.nd.field.StructDef.ownerFields:Ljava/util/List;
invokeinterface java.util.List.isEmpty:()Z
ifne 16
14: aload 0
getstatic org.eclipse.jdt.internal.core.nd.field.StructDef$DeletionSemantics.OWNED:Lorg/eclipse/jdt/internal/core/nd/field/StructDef$DeletionSemantics;
putfield org.eclipse.jdt.internal.core.nd.field.StructDef.deletionSemantics:Lorg/eclipse/jdt/internal/core/nd/field/StructDef$DeletionSemantics;
15: goto 20
StackMap locals:
StackMap stack:
16: aload 0
getfield org.eclipse.jdt.internal.core.nd.field.StructDef.superClass:Lorg/eclipse/jdt/internal/core/nd/field/StructDef;
ifnull 19
17: aload 0
aload 0
getfield org.eclipse.jdt.internal.core.nd.field.StructDef.superClass:Lorg/eclipse/jdt/internal/core/nd/field/StructDef;
getfield org.eclipse.jdt.internal.core.nd.field.StructDef.deletionSemantics:Lorg/eclipse/jdt/internal/core/nd/field/StructDef$DeletionSemantics;
putfield org.eclipse.jdt.internal.core.nd.field.StructDef.deletionSemantics:Lorg/eclipse/jdt/internal/core/nd/field/StructDef$DeletionSemantics;
18: goto 20
19: StackMap locals:
StackMap stack:
aload 0
getstatic org.eclipse.jdt.internal.core.nd.field.StructDef$DeletionSemantics.EXPLICIT:Lorg/eclipse/jdt/internal/core/nd/field/StructDef$DeletionSemantics;
putfield org.eclipse.jdt.internal.core.nd.field.StructDef.deletionSemantics:Lorg/eclipse/jdt/internal/core/nd/field/StructDef$DeletionSemantics;
20: StackMap locals:
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.core.nd.field.StructDef.superClass:Lorg/eclipse/jdt/internal/core/nd/field/StructDef;
ifnull 26
aload 0
getfield org.eclipse.jdt.internal.core.nd.field.StructDef.deletionSemantics:Lorg/eclipse/jdt/internal/core/nd/field/StructDef$DeletionSemantics;
aload 0
getfield org.eclipse.jdt.internal.core.nd.field.StructDef.superClass:Lorg/eclipse/jdt/internal/core/nd/field/StructDef;
getfield org.eclipse.jdt.internal.core.nd.field.StructDef.deletionSemantics:Lorg/eclipse/jdt/internal/core/nd/field/StructDef$DeletionSemantics;
if_acmpeq 26
21: aload 0
getfield org.eclipse.jdt.internal.core.nd.field.StructDef.superClass:Lorg/eclipse/jdt/internal/core/nd/field/StructDef;
getfield org.eclipse.jdt.internal.core.nd.field.StructDef.deletionSemantics:Lorg/eclipse/jdt/internal/core/nd/field/StructDef$DeletionSemantics;
getstatic org.eclipse.jdt.internal.core.nd.field.StructDef$DeletionSemantics.EXPLICIT:Lorg/eclipse/jdt/internal/core/nd/field/StructDef$DeletionSemantics;
if_acmpeq 26
22: new java.lang.IllegalStateException
dup
new java.lang.StringBuilder
dup
ldc "A class ("
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield org.eclipse.jdt.internal.core.nd.field.StructDef.clazz:Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ") that uses "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
23: aload 0
getfield org.eclipse.jdt.internal.core.nd.field.StructDef.deletionSemantics:Lorg/eclipse/jdt/internal/core/nd/field/StructDef$DeletionSemantics;
invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef$DeletionSemantics.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " deletion semantics may not inherit from a class "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
24: ldc "that uses "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield org.eclipse.jdt.internal.core.nd.field.StructDef.superClass:Lorg/eclipse/jdt/internal/core/nd/field/StructDef;
getfield org.eclipse.jdt.internal.core.nd.field.StructDef.deletionSemantics:Lorg/eclipse/jdt/internal/core/nd/field/StructDef$DeletionSemantics;
invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef$DeletionSemantics.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " semantics"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
25: invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
26: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield org.eclipse.jdt.internal.core.nd.field.StructDef.offsetsComputed:Z
27: aload 0
getfield org.eclipse.jdt.internal.core.nd.field.StructDef.dependents:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 3
goto 31
StackMap locals: org.eclipse.jdt.internal.core.nd.field.StructDef int top java.util.Iterator
StackMap stack:
28: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.eclipse.jdt.internal.core.nd.field.StructDef
astore 2
start local 2 29: aload 2
getfield org.eclipse.jdt.internal.core.nd.field.StructDef.doneCalled:Z
ifeq 31
30: aload 2
invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef.computeOffsets:()V
end local 2 31: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 28
32: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 33 0 this Lorg/eclipse/jdt/internal/core/nd/field/StructDef<TT;>;
3 33 1 offset I
5 8 2 next Lorg/eclipse/jdt/internal/core/nd/field/IField;
29 31 2 next Lorg/eclipse/jdt/internal/core/nd/field/StructDef<+TT;>;
public org.eclipse.jdt.internal.core.nd.field.FieldPointer addPointer();
descriptor: ()Lorg/eclipse/jdt/internal/core/nd/field/FieldPointer;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=1
start local 0 0: new org.eclipse.jdt.internal.core.nd.field.FieldPointer
dup
aload 0
invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef.getStructName:()Ljava/lang/String;
aload 0
getfield org.eclipse.jdt.internal.core.nd.field.StructDef.fields:Ljava/util/List;
invokeinterface java.util.List.size:()I
invokespecial org.eclipse.jdt.internal.core.nd.field.FieldPointer.<init>:(Ljava/lang/String;I)V
astore 1
start local 1 1: aload 0
aload 1
invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef.add:(Lorg/eclipse/jdt/internal/core/nd/field/IField;)V
2: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/eclipse/jdt/internal/core/nd/field/StructDef<TT;>;
1 3 1 result Lorg/eclipse/jdt/internal/core/nd/field/FieldPointer;
public org.eclipse.jdt.internal.core.nd.field.FieldShort addShort();
descriptor: ()Lorg/eclipse/jdt/internal/core/nd/field/FieldShort;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=1
start local 0 0: new org.eclipse.jdt.internal.core.nd.field.FieldShort
dup
aload 0
invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef.getStructName:()Ljava/lang/String;
aload 0
getfield org.eclipse.jdt.internal.core.nd.field.StructDef.fields:Ljava/util/List;
invokeinterface java.util.List.size:()I
invokespecial org.eclipse.jdt.internal.core.nd.field.FieldShort.<init>:(Ljava/lang/String;I)V
astore 1
start local 1 1: aload 0
aload 1
invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef.add:(Lorg/eclipse/jdt/internal/core/nd/field/IField;)V
2: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/eclipse/jdt/internal/core/nd/field/StructDef<TT;>;
1 3 1 result Lorg/eclipse/jdt/internal/core/nd/field/FieldShort;
public org.eclipse.jdt.internal.core.nd.field.FieldInt addInt();
descriptor: ()Lorg/eclipse/jdt/internal/core/nd/field/FieldInt;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=1
start local 0 0: new org.eclipse.jdt.internal.core.nd.field.FieldInt
dup
aload 0
invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef.getStructName:()Ljava/lang/String;
aload 0
getfield org.eclipse.jdt.internal.core.nd.field.StructDef.fields:Ljava/util/List;
invokeinterface java.util.List.size:()I
invokespecial org.eclipse.jdt.internal.core.nd.field.FieldInt.<init>:(Ljava/lang/String;I)V
astore 1
start local 1 1: aload 0
aload 1
invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef.add:(Lorg/eclipse/jdt/internal/core/nd/field/IField;)V
2: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/eclipse/jdt/internal/core/nd/field/StructDef<TT;>;
1 3 1 result Lorg/eclipse/jdt/internal/core/nd/field/FieldInt;
public org.eclipse.jdt.internal.core.nd.field.FieldLong addLong();
descriptor: ()Lorg/eclipse/jdt/internal/core/nd/field/FieldLong;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=1
start local 0 0: new org.eclipse.jdt.internal.core.nd.field.FieldLong
dup
aload 0
invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef.getStructName:()Ljava/lang/String;
aload 0
getfield org.eclipse.jdt.internal.core.nd.field.StructDef.fields:Ljava/util/List;
invokeinterface java.util.List.size:()I
invokespecial org.eclipse.jdt.internal.core.nd.field.FieldLong.<init>:(Ljava/lang/String;I)V
astore 1
start local 1 1: aload 0
aload 1
invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef.add:(Lorg/eclipse/jdt/internal/core/nd/field/IField;)V
2: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/eclipse/jdt/internal/core/nd/field/StructDef<TT;>;
1 3 1 result Lorg/eclipse/jdt/internal/core/nd/field/FieldLong;
public org.eclipse.jdt.internal.core.nd.field.FieldString addString();
descriptor: ()Lorg/eclipse/jdt/internal/core/nd/field/FieldString;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=1
start local 0 0: new org.eclipse.jdt.internal.core.nd.field.FieldString
dup
aload 0
invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef.getStructName:()Ljava/lang/String;
aload 0
getfield org.eclipse.jdt.internal.core.nd.field.StructDef.fields:Ljava/util/List;
invokeinterface java.util.List.size:()I
invokespecial org.eclipse.jdt.internal.core.nd.field.FieldString.<init>:(Ljava/lang/String;I)V
astore 1
start local 1 1: aload 0
aload 1
invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef.add:(Lorg/eclipse/jdt/internal/core/nd/field/IField;)V
2: aload 0
aload 1
invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef.addDestructableField:(Lorg/eclipse/jdt/internal/core/nd/field/IDestructableField;)V
3: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/eclipse/jdt/internal/core/nd/field/StructDef<TT;>;
1 4 1 result Lorg/eclipse/jdt/internal/core/nd/field/FieldString;
public org.eclipse.jdt.internal.core.nd.field.FieldDouble addDouble();
descriptor: ()Lorg/eclipse/jdt/internal/core/nd/field/FieldDouble;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=1
start local 0 0: new org.eclipse.jdt.internal.core.nd.field.FieldDouble
dup
aload 0
invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef.getStructName:()Ljava/lang/String;
aload 0
getfield org.eclipse.jdt.internal.core.nd.field.StructDef.fields:Ljava/util/List;
invokeinterface java.util.List.size:()I
invokespecial org.eclipse.jdt.internal.core.nd.field.FieldDouble.<init>:(Ljava/lang/String;I)V
astore 1
start local 1 1: aload 0
aload 1
invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef.add:(Lorg/eclipse/jdt/internal/core/nd/field/IField;)V
2: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/eclipse/jdt/internal/core/nd/field/StructDef<TT;>;
1 3 1 result Lorg/eclipse/jdt/internal/core/nd/field/FieldDouble;
public org.eclipse.jdt.internal.core.nd.field.FieldFloat addFloat();
descriptor: ()Lorg/eclipse/jdt/internal/core/nd/field/FieldFloat;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=1
start local 0 0: new org.eclipse.jdt.internal.core.nd.field.FieldFloat
dup
aload 0
invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef.getStructName:()Ljava/lang/String;
aload 0
getfield org.eclipse.jdt.internal.core.nd.field.StructDef.fields:Ljava/util/List;
invokeinterface java.util.List.size:()I
invokespecial org.eclipse.jdt.internal.core.nd.field.FieldFloat.<init>:(Ljava/lang/String;I)V
astore 1
start local 1 1: aload 0
aload 1
invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef.add:(Lorg/eclipse/jdt/internal/core/nd/field/IField;)V
2: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/eclipse/jdt/internal/core/nd/field/StructDef<TT;>;
1 3 1 result Lorg/eclipse/jdt/internal/core/nd/field/FieldFloat;
public java.lang.String getStructName();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.eclipse.jdt.internal.core.nd.field.StructDef.clazz:Ljava/lang/Class;
invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/eclipse/jdt/internal/core/nd/field/StructDef<TT;>;
public org.eclipse.jdt.internal.core.nd.field.FieldByte addByte();
descriptor: ()Lorg/eclipse/jdt/internal/core/nd/field/FieldByte;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=1
start local 0 0: new org.eclipse.jdt.internal.core.nd.field.FieldByte
dup
aload 0
invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef.getStructName:()Ljava/lang/String;
aload 0
getfield org.eclipse.jdt.internal.core.nd.field.StructDef.fields:Ljava/util/List;
invokeinterface java.util.List.size:()I
invokespecial org.eclipse.jdt.internal.core.nd.field.FieldByte.<init>:(Ljava/lang/String;I)V
astore 1
start local 1 1: aload 0
aload 1
invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef.add:(Lorg/eclipse/jdt/internal/core/nd/field/IField;)V
2: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/eclipse/jdt/internal/core/nd/field/StructDef<TT;>;
1 3 1 result Lorg/eclipse/jdt/internal/core/nd/field/FieldByte;
public org.eclipse.jdt.internal.core.nd.field.FieldChar addChar();
descriptor: ()Lorg/eclipse/jdt/internal/core/nd/field/FieldChar;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=1
start local 0 0: new org.eclipse.jdt.internal.core.nd.field.FieldChar
dup
aload 0
invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef.getStructName:()Ljava/lang/String;
aload 0
getfield org.eclipse.jdt.internal.core.nd.field.StructDef.fields:Ljava/util/List;
invokeinterface java.util.List.size:()I
invokespecial org.eclipse.jdt.internal.core.nd.field.FieldChar.<init>:(Ljava/lang/String;I)V
astore 1
start local 1 1: aload 0
aload 1
invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef.add:(Lorg/eclipse/jdt/internal/core/nd/field/IField;)V
2: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/eclipse/jdt/internal/core/nd/field/StructDef<TT;>;
1 3 1 result Lorg/eclipse/jdt/internal/core/nd/field/FieldChar;
public <F> org.eclipse.jdt.internal.core.nd.field.Field<F> add(org.eclipse.jdt.internal.core.nd.ITypeFactory<F>);
descriptor: (Lorg/eclipse/jdt/internal/core/nd/ITypeFactory;)Lorg/eclipse/jdt/internal/core/nd/field/Field;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: new org.eclipse.jdt.internal.core.nd.field.Field
dup
aload 1
aload 0
invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef.getStructName:()Ljava/lang/String;
aload 0
getfield org.eclipse.jdt.internal.core.nd.field.StructDef.fields:Ljava/util/List;
invokeinterface java.util.List.size:()I
invokespecial org.eclipse.jdt.internal.core.nd.field.Field.<init>:(Lorg/eclipse/jdt/internal/core/nd/ITypeFactory;Ljava/lang/String;I)V
astore 2
start local 2 1: aload 0
aload 2
invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef.add:(Lorg/eclipse/jdt/internal/core/nd/field/IField;)V
2: aload 2
getfield org.eclipse.jdt.internal.core.nd.field.Field.factory:Lorg/eclipse/jdt/internal/core/nd/ITypeFactory;
invokeinterface org.eclipse.jdt.internal.core.nd.ITypeFactory.hasDestructor:()Z
ifeq 4
3: aload 0
getfield org.eclipse.jdt.internal.core.nd.field.StructDef.destructableFields:Ljava/util/List;
aload 2
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
4: StackMap locals: org.eclipse.jdt.internal.core.nd.field.Field
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/eclipse/jdt/internal/core/nd/field/StructDef<TT;>;
0 5 1 factory1 Lorg/eclipse/jdt/internal/core/nd/ITypeFactory<TF;>;
1 5 2 result Lorg/eclipse/jdt/internal/core/nd/field/Field<TF;>;
Signature: <F:Ljava/lang/Object;>(Lorg/eclipse/jdt/internal/core/nd/ITypeFactory<TF;>;)Lorg/eclipse/jdt/internal/core/nd/field/Field<TF;>;
MethodParameters:
Name Flags
factory1
public org.eclipse.jdt.internal.core.nd.ITypeFactory<T> getFactory();
descriptor: ()Lorg/eclipse/jdt/internal/core/nd/ITypeFactory;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.eclipse.jdt.internal.core.nd.field.StructDef.factory:Lorg/eclipse/jdt/internal/core/nd/ITypeFactory;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/eclipse/jdt/internal/core/nd/field/StructDef<TT;>;
Signature: ()Lorg/eclipse/jdt/internal/core/nd/ITypeFactory<TT;>;
void destructFields(org.eclipse.jdt.internal.core.nd.Nd, long);
descriptor: (Lorg/eclipse/jdt/internal/core/nd/Nd;J)V
flags: (0x0000)
Code:
stack=4, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.eclipse.jdt.internal.core.nd.field.StructDef.destructableFields:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 5
goto 3
StackMap locals: org.eclipse.jdt.internal.core.nd.field.StructDef org.eclipse.jdt.internal.core.nd.Nd long top java.util.Iterator
StackMap stack:
1: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.eclipse.jdt.internal.core.nd.field.IDestructableField
astore 4
start local 4 2: aload 4
aload 1
lload 2
invokeinterface org.eclipse.jdt.internal.core.nd.field.IDestructableField.destruct:(Lorg/eclipse/jdt/internal/core/nd/Nd;J)V
end local 4 3: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
4: aload 0
getfield org.eclipse.jdt.internal.core.nd.field.StructDef.superClass:Lorg/eclipse/jdt/internal/core/nd/field/StructDef;
ifnull 6
5: aload 0
getfield org.eclipse.jdt.internal.core.nd.field.StructDef.superClass:Lorg/eclipse/jdt/internal/core/nd/field/StructDef;
aload 1
lload 2
invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef.destructFields:(Lorg/eclipse/jdt/internal/core/nd/Nd;J)V
6: StackMap locals: org.eclipse.jdt.internal.core.nd.field.StructDef org.eclipse.jdt.internal.core.nd.Nd long
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/eclipse/jdt/internal/core/nd/field/StructDef<TT;>;
0 7 1 dom Lorg/eclipse/jdt/internal/core/nd/Nd;
0 7 2 address J
2 3 4 next Lorg/eclipse/jdt/internal/core/nd/field/IDestructableField;
MethodParameters:
Name Flags
dom
address
public boolean isNdNode();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.eclipse.jdt.internal.core.nd.field.StructDef.isNdNode:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/eclipse/jdt/internal/core/nd/field/StructDef<TT;>;
public int getNumFields();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.eclipse.jdt.internal.core.nd.field.StructDef.fields:Ljava/util/List;
invokeinterface java.util.List.size:()I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/eclipse/jdt/internal/core/nd/field/StructDef<TT;>;
static int[] $SWITCH_TABLE$org$eclipse$jdt$internal$core$nd$field$StructDef$DeletionSemantics();
descriptor: ()[I
flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=1, args_size=0
0: getstatic org.eclipse.jdt.internal.core.nd.field.StructDef.$SWITCH_TABLE$org$eclipse$jdt$internal$core$nd$field$StructDef$DeletionSemantics:[I
dup
ifnull 1
areturn
StackMap locals:
StackMap stack: int[]
1: pop
invokestatic org.eclipse.jdt.internal.core.nd.field.StructDef$DeletionSemantics.values:()[Lorg/eclipse/jdt/internal/core/nd/field/StructDef$DeletionSemantics;
arraylength
newarray 10
astore 0
2: aload 0
getstatic org.eclipse.jdt.internal.core.nd.field.StructDef$DeletionSemantics.EXPLICIT:Lorg/eclipse/jdt/internal/core/nd/field/StructDef$DeletionSemantics;
invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef$DeletionSemantics.ordinal:()I
iconst_1
iastore
3: goto 5
StackMap locals: int[]
StackMap stack: java.lang.NoSuchFieldError
4: pop
StackMap locals:
StackMap stack:
5: aload 0
getstatic org.eclipse.jdt.internal.core.nd.field.StructDef$DeletionSemantics.OWNED:Lorg/eclipse/jdt/internal/core/nd/field/StructDef$DeletionSemantics;
invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef$DeletionSemantics.ordinal:()I
iconst_2
iastore
6: goto 8
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
7: pop
StackMap locals:
StackMap stack:
8: aload 0
getstatic org.eclipse.jdt.internal.core.nd.field.StructDef$DeletionSemantics.REFCOUNTED:Lorg/eclipse/jdt/internal/core/nd/field/StructDef$DeletionSemantics;
invokevirtual org.eclipse.jdt.internal.core.nd.field.StructDef$DeletionSemantics.ordinal:()I
iconst_3
iastore
9: goto 11
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
10: pop
StackMap locals:
StackMap stack:
11: aload 0
dup
putstatic org.eclipse.jdt.internal.core.nd.field.StructDef.$SWITCH_TABLE$org$eclipse$jdt$internal$core$nd$field$StructDef$DeletionSemantics:[I
areturn
LocalVariableTable:
Start End Slot Name Signature
Exception table:
from to target type
2 3 4 Class java.lang.NoSuchFieldError
5 6 7 Class java.lang.NoSuchFieldError
8 9 10 Class java.lang.NoSuchFieldError
}
Signature: <T:Ljava/lang/Object;>Ljava/lang/Object;
SourceFile: "StructDef.java"
NestMembers:
org.eclipse.jdt.internal.core.nd.field.StructDef$1 org.eclipse.jdt.internal.core.nd.field.StructDef$DeletionSemantics
InnerClasses:
public Tag = org.eclipse.jdt.internal.core.nd.db.ModificationLog$Tag of org.eclipse.jdt.internal.core.nd.db.ModificationLog
org.eclipse.jdt.internal.core.nd.field.StructDef$1
public final DeletionSemantics = org.eclipse.jdt.internal.core.nd.field.StructDef$DeletionSemantics of org.eclipse.jdt.internal.core.nd.field.StructDef