Skip to content

Instantly share code, notes, and snippets.

@Geolykt
Created September 15, 2024 16:17
Show Gist options
  • Save Geolykt/673229789eb24b67a0782870ed3be232 to your computer and use it in GitHub Desktop.
Save Geolykt/673229789eb24b67a0782870ed3be232 to your computer and use it in GitHub Desktop.
Classfile /home/geolykt/.local/share/Steam/steamapps/common/Galimulator_copy/classes/org/stianloader/micromixin/test/j8/targets/ConstructorMergingTest.class
Last modified Sep 15, 2024; size 2919 bytes
MD5 checksum bd0737909513baccd8a1e41eca37f54b
Compiled from "ConstructorMergingTest.java"
public class org.stianloader.micromixin.test.j8.targets.ConstructorMergingTest extends org.stianloader.micromixin.test.j8.MutableInt
minor version: 0
major version: 52
flags: ACC_PUBLIC, ACC_SUPER
Constant pool:
#1 = Utf8 org/stianloader/micromixin/test/j8/targets/ConstructorMergingTest
#2 = Class #1 // org/stianloader/micromixin/test/j8/targets/ConstructorMergingTest
#3 = Utf8 Lorg/stianloader/micromixin/test/j8/MutableInt;
#4 = Utf8 org/stianloader/micromixin/test/j8/MutableInt
#5 = Class #4 // org/stianloader/micromixin/test/j8/MutableInt
#6 = Utf8 ConstructorMergingTest.java
#7 = Utf8 shadowField0
#8 = Utf8 I
#9 = Utf8 shadowField1
#10 = Utf8 shadowField2
#11 = Utf8 shadowField3
#12 = Utf8 witness0
#13 = Utf8 Ljava/lang/Object;
#14 = Utf8 Lorg/spongepowered/asm/mixin/transformer/meta/MixinMerged;
#15 = Utf8 mixin
#16 = Utf8 org.stianloader.micromixin.test.j8.mixin.ConstructorMergingMixins
#17 = Utf8 priority
#18 = Integer 1000
#19 = Utf8 sessionId
#20 = Utf8 565359f6-b23a-4d86-97c2-950cdc41b539
#21 = Utf8 witness1
#22 = Utf8 witness2
#23 = Utf8 Ljava/lang/String;
#24 = Utf8 witness3
#25 = Utf8 <init>
#26 = Utf8 (I)V
#27 = NameAndType #25:#26 // "<init>":(I)V
#28 = Methodref #5.#27 // org/stianloader/micromixin/test/j8/MutableInt."<init>":(I)V
#29 = NameAndType #7:#8 // shadowField0:I
#30 = Fieldref #2.#29 // org/stianloader/micromixin/test/j8/targets/ConstructorMergingTest.shadowField0:I
#31 = NameAndType #9:#8 // shadowField1:I
#32 = Fieldref #2.#31 // org/stianloader/micromixin/test/j8/targets/ConstructorMergingTest.shadowField1:I
#33 = NameAndType #10:#8 // shadowField2:I
#34 = Fieldref #2.#33 // org/stianloader/micromixin/test/j8/targets/ConstructorMergingTest.shadowField2:I
#35 = Utf8 java/lang/Object
#36 = Class #35 // java/lang/Object
#37 = Utf8 ()V
#38 = NameAndType #25:#37 // "<init>":()V
#39 = Methodref #36.#38 // java/lang/Object."<init>":()V
#40 = NameAndType #12:#13 // witness0:Ljava/lang/Object;
#41 = Fieldref #2.#40 // org/stianloader/micromixin/test/j8/targets/ConstructorMergingTest.witness0:Ljava/lang/Object;
#42 = Utf8 java/lang/StringBuilder
#43 = Class #42 // java/lang/StringBuilder
#44 = Methodref #43.#38 // java/lang/StringBuilder."<init>":()V
#45 = Utf8 0x
#46 = String #45 // 0x
#47 = Utf8 append
#48 = Utf8 (Ljava/lang/String;)Ljava/lang/StringBuilder;
#49 = NameAndType #47:#48 // append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
#50 = Methodref #43.#49 // java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
#51 = Utf8 java/lang/Integer
#52 = Class #51 // java/lang/Integer
#53 = Utf8 toHexString
#54 = Utf8 (I)Ljava/lang/String;
#55 = NameAndType #53:#54 // toHexString:(I)Ljava/lang/String;
#56 = Methodref #52.#55 // java/lang/Integer.toHexString:(I)Ljava/lang/String;
#57 = Utf8 java/util/Locale
#58 = Class #57 // java/util/Locale
#59 = Utf8 ROOT
#60 = Utf8 Ljava/util/Locale;
#61 = NameAndType #59:#60 // ROOT:Ljava/util/Locale;
#62 = Fieldref #58.#61 // java/util/Locale.ROOT:Ljava/util/Locale;
#63 = Utf8 java/lang/String
#64 = Class #63 // java/lang/String
#65 = Utf8 toUpperCase
#66 = Utf8 (Ljava/util/Locale;)Ljava/lang/String;
#67 = NameAndType #65:#66 // toUpperCase:(Ljava/util/Locale;)Ljava/lang/String;
#68 = Methodref #64.#67 // java/lang/String.toUpperCase:(Ljava/util/Locale;)Ljava/lang/String;
#69 = Utf8 toString
#70 = Utf8 ()Ljava/lang/String;
#71 = NameAndType #69:#70 // toString:()Ljava/lang/String;
#72 = Methodref #43.#71 // java/lang/StringBuilder.toString:()Ljava/lang/String;
#73 = NameAndType #24:#23 // witness3:Ljava/lang/String;
#74 = Fieldref #2.#73 // org/stianloader/micromixin/test/j8/targets/ConstructorMergingTest.witness3:Ljava/lang/String;
#75 = NameAndType #11:#8 // shadowField3:I
#76 = Fieldref #2.#75 // org/stianloader/micromixin/test/j8/targets/ConstructorMergingTest.shadowField3:I
#77 = Utf8 true
#78 = String #77 // true
#79 = Utf8 java/lang/Boolean
#80 = Class #79 // java/lang/Boolean
#81 = Utf8 getBoolean
#82 = Utf8 (Ljava/lang/String;)Z
#83 = NameAndType #81:#82 // getBoolean:(Ljava/lang/String;)Z
#84 = Methodref #80.#83 // java/lang/Boolean.getBoolean:(Ljava/lang/String;)Z
#85 = Utf8 false
#86 = String #85 // false
#87 = Utf8 this
#88 = Utf8 Lorg/stianloader/micromixin/test/j8/targets/ConstructorMergingTest;
#89 = Utf8 value
#90 = Utf8 (ILjava/lang/Void;)V
#91 = Utf8 otherConstructor
#92 = Utf8 Ljava/lang/Void;
#93 = Utf8 java/lang/Void
#94 = Class #93 // java/lang/Void
#95 = Utf8 getWitness0
#96 = Utf8 ()Ljava/lang/Object;
#97 = Utf8 Lorg/spongepowered/asm/mixin/Overwrite;
#98 = Utf8 getWitness1
#99 = NameAndType #21:#13 // witness1:Ljava/lang/Object;
#100 = Fieldref #2.#99 // org/stianloader/micromixin/test/j8/targets/ConstructorMergingTest.witness1:Ljava/lang/Object;
#101 = Utf8 getWitness2
#102 = NameAndType #22:#23 // witness2:Ljava/lang/String;
#103 = Fieldref #2.#102 // org/stianloader/micromixin/test/j8/targets/ConstructorMergingTest.witness2:Ljava/lang/String;
#104 = Utf8 getWitness3
#105 = Utf8 RuntimeVisibleAnnotations
#106 = Utf8 Code
#107 = Utf8 StackMapTable
#108 = Utf8 LineNumberTable
#109 = Utf8 LocalVariableTable
#110 = Utf8 Signature
#111 = Utf8 SourceFile
#112 = Utf8 SourceDebugExtension
{
public int shadowField0;
descriptor: I
flags: ACC_PUBLIC
public int shadowField1;
descriptor: I
flags: ACC_PUBLIC
public int shadowField2;
descriptor: I
flags: ACC_PUBLIC
public int shadowField3;
descriptor: I
flags: ACC_PUBLIC
private java.lang.Object witness0;
descriptor: Ljava/lang/Object;
flags: ACC_PRIVATE
RuntimeVisibleAnnotations:
0: #14(#15=s#16,#17=I#18,#19=s#20)
private java.lang.Object witness1;
descriptor: Ljava/lang/Object;
flags: ACC_PRIVATE
RuntimeVisibleAnnotations:
0: #14(#15=s#16,#17=I#18,#19=s#20)
private java.lang.String witness2;
descriptor: Ljava/lang/String;
flags: ACC_PRIVATE
RuntimeVisibleAnnotations:
0: #14(#15=s#16,#17=I#18,#19=s#20)
private java.lang.String witness3;
descriptor: Ljava/lang/String;
flags: ACC_PRIVATE
RuntimeVisibleAnnotations:
0: #14(#15=s#16,#17=I#18,#19=s#20)
public org.stianloader.micromixin.test.j8.targets.ConstructorMergingTest(int);
descriptor: (I)V
flags: ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
0: aload_0
1: iload_1
2: invokespecial #28 // Method org/stianloader/micromixin/test/j8/MutableInt."<init>":(I)V
5: aload_0
6: iconst_3
7: putfield #30 // Field shadowField0:I
10: aload_0
11: iconst_5
12: putfield #32 // Field shadowField1:I
15: aload_0
16: bipush 7
18: putfield #34 // Field shadowField2:I
21: aload_0
22: iconst_4
23: putfield #30 // Field shadowField0:I
26: aload_0
27: new #36 // class java/lang/Object
30: dup
31: invokespecial #39 // Method java/lang/Object."<init>":()V
34: putfield #41 // Field witness0:Ljava/lang/Object;
37: aload_0
38: bipush 8
40: putfield #34 // Field shadowField2:I
43: aload_0
44: new #43 // class java/lang/StringBuilder
47: dup
48: invokespecial #44 // Method java/lang/StringBuilder."<init>":()V
51: ldc #46 // String 0x
53: invokevirtual #50 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
56: bipush 10
58: invokestatic #56 // Method java/lang/Integer.toHexString:(I)Ljava/lang/String;
61: getstatic #62 // Field java/util/Locale.ROOT:Ljava/util/Locale;
64: invokevirtual #68 // Method java/lang/String.toUpperCase:(Ljava/util/Locale;)Ljava/lang/String;
67: invokevirtual #50 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
70: invokevirtual #72 // Method java/lang/StringBuilder.toString:()Ljava/lang/String;
73: putfield #74 // Field witness3:Ljava/lang/String;
76: aload_0
77: bipush 9
79: putfield #76 // Field shadowField3:I
82: ldc #78 // String true
84: invokestatic #84 // Method java/lang/Boolean.getBoolean:(Ljava/lang/String;)Z
87: ifeq 91
90: return
91: ldc #86 // String false
93: invokestatic #84 // Method java/lang/Boolean.getBoolean:(Ljava/lang/String;)Z
96: ifeq 100
99: return
100: return
StackMapTable: number_of_entries = 2
frame_type = 255 /* full_frame */
offset_delta = 91
locals = [ class org/stianloader/micromixin/test/j8/targets/ConstructorMergingTest, int ]
stack = []
frame_type = 8 /* same */
LineNumberTable:
line 12: 0
line 6: 5
line 7: 10
line 8: 15
line 9: 76
line 13: 82
line 14: 90
line 15: 91
line 16: 99
line 18: 100
LocalVariableTable:
Start Length Slot Name Signature
0 101 0 this Lorg/stianloader/micromixin/test/j8/targets/ConstructorMergingTest;
0 101 1 value I
public org.stianloader.micromixin.test.j8.targets.ConstructorMergingTest(int, java.lang.Void);
descriptor: (ILjava/lang/Void;)V
flags: ACC_PUBLIC
Code:
stack=4, locals=3, args_size=3
0: aload_0
1: iload_1
2: invokespecial #28 // Method org/stianloader/micromixin/test/j8/MutableInt."<init>":(I)V
5: aload_0
6: iconst_3
7: putfield #30 // Field shadowField0:I
10: aload_0
11: iconst_5
12: putfield #32 // Field shadowField1:I
15: aload_0
16: bipush 7
18: putfield #34 // Field shadowField2:I
21: aload_0
22: iconst_4
23: putfield #30 // Field shadowField0:I
26: aload_0
27: new #36 // class java/lang/Object
30: dup
31: invokespecial #39 // Method java/lang/Object."<init>":()V
34: putfield #41 // Field witness0:Ljava/lang/Object;
37: aload_0
38: bipush 8
40: putfield #34 // Field shadowField2:I
43: aload_0
44: new #43 // class java/lang/StringBuilder
47: dup
48: invokespecial #44 // Method java/lang/StringBuilder."<init>":()V
51: ldc #46 // String 0x
53: invokevirtual #50 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
56: bipush 10
58: invokestatic #56 // Method java/lang/Integer.toHexString:(I)Ljava/lang/String;
61: getstatic #62 // Field java/util/Locale.ROOT:Ljava/util/Locale;
64: invokevirtual #68 // Method java/lang/String.toUpperCase:(Ljava/util/Locale;)Ljava/lang/String;
67: invokevirtual #50 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
70: invokevirtual #72 // Method java/lang/StringBuilder.toString:()Ljava/lang/String;
73: putfield #74 // Field witness3:Ljava/lang/String;
76: aload_0
77: bipush 9
79: putfield #76 // Field shadowField3:I
82: ldc #78 // String true
84: invokestatic #84 // Method java/lang/Boolean.getBoolean:(Ljava/lang/String;)Z
87: ifeq 91
90: return
91: ldc #86 // String false
93: invokestatic #84 // Method java/lang/Boolean.getBoolean:(Ljava/lang/String;)Z
96: ifeq 100
99: return
100: return
StackMapTable: number_of_entries = 2
frame_type = 255 /* full_frame */
offset_delta = 91
locals = [ class org/stianloader/micromixin/test/j8/targets/ConstructorMergingTest, int, class java/lang/Void ]
stack = []
frame_type = 8 /* same */
LineNumberTable:
line 21: 0
line 6: 5
line 7: 10
line 8: 15
line 9: 76
line 22: 82
line 23: 90
line 24: 91
line 25: 99
line 27: 100
LocalVariableTable:
Start Length Slot Name Signature
0 101 0 this Lorg/stianloader/micromixin/test/j8/targets/ConstructorMergingTest;
0 101 1 value I
0 101 2 otherConstructor Ljava/lang/Void;
public java.lang.Object getWitness0();
descriptor: ()Ljava/lang/Object;
flags: ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
0: aload_0
1: getfield #41 // Field witness0:Ljava/lang/Object;
4: areturn
LineNumberTable:
line 546: 0
LocalVariableTable:
Start Length Slot Name Signature
0 5 0 this Lorg/stianloader/micromixin/test/j8/targets/ConstructorMergingTest;
RuntimeVisibleAnnotations:
0: #97()
1: #14(#15=s#16,#17=I#18,#19=s#20)
public java.lang.Object getWitness1();
descriptor: ()Ljava/lang/Object;
flags: ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
0: aload_0
1: getfield #100 // Field witness1:Ljava/lang/Object;
4: areturn
LineNumberTable:
line 551: 0
LocalVariableTable:
Start Length Slot Name Signature
0 5 0 this Lorg/stianloader/micromixin/test/j8/targets/ConstructorMergingTest;
RuntimeVisibleAnnotations:
0: #97()
1: #14(#15=s#16,#17=I#18,#19=s#20)
public java.lang.Object getWitness2();
descriptor: ()Ljava/lang/Object;
flags: ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
0: aload_0
1: getfield #103 // Field witness2:Ljava/lang/String;
4: areturn
LineNumberTable:
line 556: 0
LocalVariableTable:
Start Length Slot Name Signature
0 5 0 this Lorg/stianloader/micromixin/test/j8/targets/ConstructorMergingTest;
RuntimeVisibleAnnotations:
0: #97()
1: #14(#15=s#16,#17=I#18,#19=s#20)
public java.lang.Object getWitness3();
descriptor: ()Ljava/lang/Object;
flags: ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
0: aload_0
1: getfield #74 // Field witness3:Ljava/lang/String;
4: areturn
LineNumberTable:
line 561: 0
LocalVariableTable:
Start Length Slot Name Signature
0 5 0 this Lorg/stianloader/micromixin/test/j8/targets/ConstructorMergingTest;
RuntimeVisibleAnnotations:
0: #97()
1: #14(#15=s#16,#17=I#18,#19=s#20)
}
Signature: #3 // Lorg/stianloader/micromixin/test/j8/MutableInt;
SourceFile: "ConstructorMergingTest.java"
SourceDebugExtension:
SMAP
ConstructorMergingTest.java
Mixin
*S Mixin
*F
+ 1 ConstructorMergingTest.java
org/stianloader/micromixin/test/j8/targets/ConstructorMergingTest.java
+ 2 ConstructorMergingMixins.java
org/stianloader/micromixin/test/j8/mixin/ConstructorMergingMixins.java
*L
1#1,500:1
1#2,500:501
*E
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment