class com.oracle.objectfile.macho.MachORelocationElement extends com.oracle.objectfile.macho.MachOObjectFile$LinkEditElement
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: com.oracle.objectfile.macho.MachORelocationElement
super_class: com.oracle.objectfile.macho.MachOObjectFile$LinkEditElement
{
private java.util.Map<com.oracle.objectfile.macho.RelocationInfo, com.oracle.objectfile.macho.RelocationInfo> infos;
descriptor: Ljava/util/Map;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/Map<Lcom/oracle/objectfile/macho/RelocationInfo;Lcom/oracle/objectfile/macho/RelocationInfo;>;
private java.util.Set<com.oracle.objectfile.macho.MachOObjectFile$MachOSection> relocatedSections;
descriptor: Ljava/util/Set;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/Set<Lcom/oracle/objectfile/macho/MachOObjectFile$MachOSection;>;
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/objectfile/macho/MachORelocationElement;
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.objectfile.macho.MachORelocationElement.$assertionsDisabled:Z
return
LocalVariableTable:
Start End Slot Name Signature
private static int compareSectionThenOffset(com.oracle.objectfile.macho.RelocationInfo, com.oracle.objectfile.macho.RelocationInfo);
descriptor: (Lcom/oracle/objectfile/macho/RelocationInfo;Lcom/oracle/objectfile/macho/RelocationInfo;)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual com.oracle.objectfile.macho.RelocationInfo.getRelocatedSection:()Lcom/oracle/objectfile/macho/MachOObjectFile$MachOSection;
aload 1
invokevirtual com.oracle.objectfile.macho.RelocationInfo.getRelocatedSection:()Lcom/oracle/objectfile/macho/MachOObjectFile$MachOSection;
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifne 2
1: aload 0
invokevirtual com.oracle.objectfile.macho.RelocationInfo.getRelocatedSection:()Lcom/oracle/objectfile/macho/MachOObjectFile$MachOSection;
invokevirtual java.lang.Object.hashCode:()I
aload 1
invokevirtual com.oracle.objectfile.macho.RelocationInfo.getRelocatedSection:()Lcom/oracle/objectfile/macho/MachOObjectFile$MachOSection;
invokevirtual java.lang.Object.hashCode:()I
isub
ireturn
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.oracle.objectfile.macho.RelocationInfo.getOffset:()J
aload 1
invokevirtual com.oracle.objectfile.macho.RelocationInfo.getOffset:()J
lsub
invokestatic java.lang.Math.toIntExact:(J)I
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 p Lcom/oracle/objectfile/macho/RelocationInfo;
0 3 1 q Lcom/oracle/objectfile/macho/RelocationInfo;
MethodParameters:
Name Flags
p
q
void <init>(com.oracle.objectfile.macho.MachOObjectFile$Segment64Command);
descriptor: (Lcom/oracle/objectfile/macho/MachOObjectFile$Segment64Command;)V
flags: (0x0000)
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual com.oracle.objectfile.macho.MachOObjectFile$Segment64Command.getOwner:()Lcom/oracle/objectfile/macho/MachOObjectFile;
dup
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
pop
ldc "MachORelocationElement"
aload 1
invokespecial com.oracle.objectfile.macho.MachOObjectFile$LinkEditElement.<init>:(Lcom/oracle/objectfile/macho/MachOObjectFile;Ljava/lang/String;Lcom/oracle/objectfile/macho/MachOObjectFile$Segment64Command;)V
1: aload 0
new java.util.TreeMap
dup
invokedynamic compare()Ljava/util/Comparator;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;Ljava/lang/Object;)I
com/oracle/objectfile/macho/MachORelocationElement.compareSectionThenOffset(Lcom/oracle/objectfile/macho/RelocationInfo;Lcom/oracle/objectfile/macho/RelocationInfo;)I (6)
(Lcom/oracle/objectfile/macho/RelocationInfo;Lcom/oracle/objectfile/macho/RelocationInfo;)I
invokespecial java.util.TreeMap.<init>:(Ljava/util/Comparator;)V
putfield com.oracle.objectfile.macho.MachORelocationElement.infos:Ljava/util/Map;
2: aload 0
new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
putfield com.oracle.objectfile.macho.MachORelocationElement.relocatedSections:Ljava/util/Set;
3: getstatic com.oracle.objectfile.macho.MachORelocationElement.$assertionsDisabled:Z
ifne 4
aload 1
invokevirtual com.oracle.objectfile.macho.MachOObjectFile$Segment64Command.getOwner:()Lcom/oracle/objectfile/macho/MachOObjectFile;
getfield com.oracle.objectfile.macho.MachOObjectFile.relocs:Lcom/oracle/objectfile/macho/MachORelocationElement;
ifnull 4
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
4: StackMap locals: com.oracle.objectfile.macho.MachORelocationElement com.oracle.objectfile.macho.MachOObjectFile$Segment64Command
StackMap stack:
aload 1
invokevirtual com.oracle.objectfile.macho.MachOObjectFile$Segment64Command.getOwner:()Lcom/oracle/objectfile/macho/MachOObjectFile;
aload 0
putfield com.oracle.objectfile.macho.MachOObjectFile.relocs:Lcom/oracle/objectfile/macho/MachORelocationElement;
5: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/oracle/objectfile/macho/MachORelocationElement;
0 6 1 segment Lcom/oracle/objectfile/macho/MachOObjectFile$Segment64Command;
MethodParameters:
Name Flags
segment
public void add(com.oracle.objectfile.macho.RelocationInfo);
descriptor: (Lcom/oracle/objectfile/macho/RelocationInfo;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.objectfile.macho.MachORelocationElement.infos:Ljava/util/Map;
aload 1
aload 1
invokeinterface java.util.Map.putIfAbsent:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
ifnonnull 2
1: aload 0
getfield com.oracle.objectfile.macho.MachORelocationElement.relocatedSections:Ljava/util/Set;
aload 1
invokevirtual com.oracle.objectfile.macho.RelocationInfo.getRelocatedSection:()Lcom/oracle/objectfile/macho/MachOObjectFile$MachOSection;
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
2: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/objectfile/macho/MachORelocationElement;
0 3 1 rec Lcom/oracle/objectfile/macho/RelocationInfo;
MethodParameters:
Name Flags
rec
public boolean relocatesSegment(com.oracle.objectfile.macho.MachOObjectFile$Segment64Command);
descriptor: (Lcom/oracle/objectfile/macho/MachOObjectFile$Segment64Command;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
getfield com.oracle.objectfile.macho.MachOObjectFile$Segment64Command.elementsInSegment:Ljava/util/List;
invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
aload 0
invokedynamic test(Lcom/oracle/objectfile/macho/MachORelocationElement;)Ljava/util/function/Predicate;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)Z
com/oracle/objectfile/macho/MachORelocationElement.lambda$1(Lcom/oracle/objectfile/ObjectFile$Element;)Z (7)
(Lcom/oracle/objectfile/ObjectFile$Element;)Z
invokeinterface java.util.stream.Stream.anyMatch:(Ljava/util/function/Predicate;)Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/objectfile/macho/MachORelocationElement;
0 1 1 seg Lcom/oracle/objectfile/macho/MachOObjectFile$Segment64Command;
MethodParameters:
Name Flags
seg
public byte[] getOrDecideContent(java.util.Map<com.oracle.objectfile.ObjectFile$Element, com.oracle.objectfile.LayoutDecisionMap>, );
descriptor: (Ljava/util/Map;[B)[B
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual com.oracle.objectfile.macho.MachORelocationElement.getOwner:()Lcom/oracle/objectfile/ObjectFile;
invokevirtual com.oracle.objectfile.ObjectFile.getByteOrder:()Ljava/nio/ByteOrder;
invokestatic com.oracle.objectfile.io.AssemblyBuffer.createOutputAssembler:(Ljava/nio/ByteOrder;)Lcom/oracle/objectfile/io/OutputAssembler;
astore 3
start local 3 1: aload 0
getfield com.oracle.objectfile.macho.MachORelocationElement.infos:Ljava/util/Map;
invokeinterface java.util.Map.keySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 5
goto 4
StackMap locals: com.oracle.objectfile.macho.MachORelocationElement java.util.Map byte[] com.oracle.objectfile.io.OutputAssembler top java.util.Iterator
StackMap stack:
2: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.objectfile.macho.RelocationInfo
astore 4
start local 4 3: aload 4
aload 3
aload 1
invokevirtual com.oracle.objectfile.macho.RelocationInfo.write:(Lcom/oracle/objectfile/io/OutputAssembler;Ljava/util/Map;)V
end local 4 4: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
5: getstatic com.oracle.objectfile.macho.MachORelocationElement.$assertionsDisabled:Z
ifne 6
aload 0
aload 1
iconst_m1
invokevirtual com.oracle.objectfile.macho.MachORelocationElement.getOrDecideSize:(Ljava/util/Map;I)I
aload 3
invokeinterface com.oracle.objectfile.io.OutputAssembler.pos:()I
if_icmpeq 6
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
6: StackMap locals: com.oracle.objectfile.macho.MachORelocationElement java.util.Map byte[] com.oracle.objectfile.io.OutputAssembler
StackMap stack:
aload 3
invokeinterface com.oracle.objectfile.io.OutputAssembler.getBlob:()[B
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/oracle/objectfile/macho/MachORelocationElement;
0 7 1 alreadyDecided Ljava/util/Map<Lcom/oracle/objectfile/ObjectFile$Element;Lcom/oracle/objectfile/LayoutDecisionMap;>;
0 7 2 contentHint [B
1 7 3 out Lcom/oracle/objectfile/io/OutputAssembler;
3 4 4 rec Lcom/oracle/objectfile/macho/RelocationInfo;
Signature: (Ljava/util/Map<Lcom/oracle/objectfile/ObjectFile$Element;Lcom/oracle/objectfile/LayoutDecisionMap;>;[B)[B
MethodParameters:
Name Flags
alreadyDecided
contentHint
public int getOrDecideSize(java.util.Map<com.oracle.objectfile.ObjectFile$Element, com.oracle.objectfile.LayoutDecisionMap>, );
descriptor: (Ljava/util/Map;I)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.oracle.objectfile.macho.MachORelocationElement.infos:Ljava/util/Map;
invokeinterface java.util.Map.size:()I
aload 0
invokevirtual com.oracle.objectfile.macho.MachORelocationElement.encodedEntrySize:()I
imul
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/objectfile/macho/MachORelocationElement;
0 1 1 alreadyDecided Ljava/util/Map<Lcom/oracle/objectfile/ObjectFile$Element;Lcom/oracle/objectfile/LayoutDecisionMap;>;
0 1 2 sizeHint I
Signature: (Ljava/util/Map<Lcom/oracle/objectfile/ObjectFile$Element;Lcom/oracle/objectfile/LayoutDecisionMap;>;I)I
MethodParameters:
Name Flags
alreadyDecided
sizeHint
public java.lang.Iterable<com.oracle.objectfile.BuildDependency> getDependencies(java.util.Map<com.oracle.objectfile.ObjectFile$Element, com.oracle.objectfile.LayoutDecisionMap>);
descriptor: (Ljava/util/Map;)Ljava/lang/Iterable;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
aload 0
invokestatic com.oracle.objectfile.ObjectFile.minimalDependencies:(Ljava/util/Map;Lcom/oracle/objectfile/ObjectFile$Element;)Ljava/util/HashSet;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/objectfile/macho/MachORelocationElement;
0 1 1 decisions Ljava/util/Map<Lcom/oracle/objectfile/ObjectFile$Element;Lcom/oracle/objectfile/LayoutDecisionMap;>;
Signature: (Ljava/util/Map<Lcom/oracle/objectfile/ObjectFile$Element;Lcom/oracle/objectfile/LayoutDecisionMap;>;)Ljava/lang/Iterable<Lcom/oracle/objectfile/BuildDependency;>;
MethodParameters:
Name Flags
decisions
public int startIndexFor(com.oracle.objectfile.macho.MachOObjectFile$MachOSection);
descriptor: (Lcom/oracle/objectfile/macho/MachOObjectFile$MachOSection;)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=5, args_size=2
start local 0 start local 1 0: iconst_0
istore 2
start local 2 1: aload 0
getfield com.oracle.objectfile.macho.MachORelocationElement.infos:Ljava/util/Map;
invokeinterface java.util.Map.keySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 4
goto 6
StackMap locals: com.oracle.objectfile.macho.MachORelocationElement com.oracle.objectfile.macho.MachOObjectFile$MachOSection int top java.util.Iterator
StackMap stack:
2: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.objectfile.macho.RelocationInfo
astore 3
start local 3 3: aload 3
invokevirtual com.oracle.objectfile.macho.RelocationInfo.getRelocatedSection:()Lcom/oracle/objectfile/macho/MachOObjectFile$MachOSection;
aload 1
if_acmpne 5
4: iload 2
ireturn
5: StackMap locals: com.oracle.objectfile.macho.MachORelocationElement com.oracle.objectfile.macho.MachOObjectFile$MachOSection int com.oracle.objectfile.macho.RelocationInfo java.util.Iterator
StackMap stack:
iinc 2 1
end local 3 6: StackMap locals: com.oracle.objectfile.macho.MachORelocationElement com.oracle.objectfile.macho.MachOObjectFile$MachOSection int top java.util.Iterator
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
7: iconst_m1
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/oracle/objectfile/macho/MachORelocationElement;
0 8 1 s Lcom/oracle/objectfile/macho/MachOObjectFile$MachOSection;
1 8 2 i I
3 6 3 info Lcom/oracle/objectfile/macho/RelocationInfo;
MethodParameters:
Name Flags
s
public int encodedEntrySize();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: invokestatic com.oracle.objectfile.macho.RelocationInfo.getEncodedSize:()I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/objectfile/macho/MachORelocationElement;
public int countFor(com.oracle.objectfile.macho.MachOObjectFile$MachOSection);
descriptor: (Lcom/oracle/objectfile/macho/MachOObjectFile$MachOSection;)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.objectfile.macho.MachORelocationElement.infos:Ljava/util/Map;
invokeinterface java.util.Map.keySet:()Ljava/util/Set;
invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
aload 1
invokedynamic test(Lcom/oracle/objectfile/macho/MachOObjectFile$MachOSection;)Ljava/util/function/Predicate;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)Z
com/oracle/objectfile/macho/MachORelocationElement.lambda$2(Lcom/oracle/objectfile/macho/MachOObjectFile$MachOSection;Lcom/oracle/objectfile/macho/RelocationInfo;)Z (6)
(Lcom/oracle/objectfile/macho/RelocationInfo;)Z
invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
invokeinterface java.util.stream.Stream.count:()J
invokestatic java.lang.Math.toIntExact:(J)I
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/objectfile/macho/MachORelocationElement;
0 1 1 s Lcom/oracle/objectfile/macho/MachOObjectFile$MachOSection;
MethodParameters:
Name Flags
s
private boolean lambda$1(com.oracle.objectfile.ObjectFile$Element);
descriptor: (Lcom/oracle/objectfile/ObjectFile$Element;)Z
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
instanceof com.oracle.objectfile.macho.MachOObjectFile$MachOSection
ifeq 1
aload 0
getfield com.oracle.objectfile.macho.MachORelocationElement.relocatedSections:Ljava/util/Set;
aload 1
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifeq 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/objectfile/macho/MachORelocationElement;
0 3 1 e Lcom/oracle/objectfile/ObjectFile$Element;
private static boolean lambda$2(com.oracle.objectfile.macho.MachOObjectFile$MachOSection, com.oracle.objectfile.macho.RelocationInfo);
descriptor: (Lcom/oracle/objectfile/macho/MachOObjectFile$MachOSection;Lcom/oracle/objectfile/macho/RelocationInfo;)Z
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
start local 1 0: aload 0
aload 1
invokevirtual com.oracle.objectfile.macho.RelocationInfo.getRelocatedSection:()Lcom/oracle/objectfile/macho/MachOObjectFile$MachOSection;
if_acmpne 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: ireturn
end local 1 LocalVariableTable:
Start End Slot Name Signature
0 3 1 struct Lcom/oracle/objectfile/macho/RelocationInfo;
}
SourceFile: "MachORelocationElement.java"
InnerClasses:
public abstract Element = com.oracle.objectfile.ObjectFile$Element of com.oracle.objectfile.ObjectFile
abstract LinkEditElement = com.oracle.objectfile.macho.MachOObjectFile$LinkEditElement of com.oracle.objectfile.macho.MachOObjectFile
public abstract MachOSection = com.oracle.objectfile.macho.MachOObjectFile$MachOSection of com.oracle.objectfile.macho.MachOObjectFile
public Segment64Command = com.oracle.objectfile.macho.MachOObjectFile$Segment64Command of com.oracle.objectfile.macho.MachOObjectFile
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles