Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fakurek erstellt identische methoden #258

Open
vincentbohlen opened this issue Jul 13, 2014 · 2 comments
Open

fakurek erstellt identische methoden #258

vincentbohlen opened this issue Jul 13, 2014 · 2 comments

Comments

@vincentbohlen
Copy link
Collaborator

Wenn ich fakurek durchlaufen lasse, bekomme ich wieder für main und für faku den selben methodenkörper. eine konkatenation aus dem anfang von main und dem ganzen faku. der output von main fehlt aber. es gibt auch keinen methodenaufruf im opcode

@ChrisKujawa
Copy link
Collaborator

Schreib mal deine Ausgabe mit rein und das Beispiel das man das etwas nachvoll ziehen kann bitte :)

@vincentbohlen
Copy link
Collaborator Author

Keine Ausgabe, kompiliert also normal und "läasst sich auch ausführen" gibt halt auch keine ausgabe.

Code faku:
opcode [B2] - 0000: getstatic 142 [Fieldref: Main.stack, type = java.util.ArrayDeque]
opcode [B6] - 0003: invokevirtual 127 [Methodref: java.util.ArrayDeque.pop, parameter = (), returns = java.lang.Object]
opcode [3A] - 0006: dstore 4
opcode [19] - 0008: aload 4
opcode [B2] - 0010: getstatic 142 [Fieldref: Main.stack, type = java.util.ArrayDeque]
opcode [5F] - 0013: swap
opcode [B6] - 0014: invokevirtual 128 [Methodref: java.util.ArrayDeque.push, parameter = (java.lang.Object), returns = void]
opcode [12] - 0017: ldc 145 [Integer: 1]
opcode [B8] - 0019: invokestatic 113 [Methodref: java.lang.Integer.valueOf, parameter = (int), returns = java.lang.Integer]
opcode [B2] - 0022: getstatic 142 [Fieldref: Main.stack, type = java.util.ArrayDeque]
opcode [5F] - 0025: swap
opcode [B6] - 0026: invokevirtual 128 [Methodref: java.util.ArrayDeque.push, parameter = (java.lang.Object), returns = void]
opcode [B2] - 0029: getstatic 142 [Fieldref: Main.stack, type = java.util.ArrayDeque]
opcode [B6] - 0032: invokevirtual 127 [Methodref: java.util.ArrayDeque.pop, parameter = (), returns = java.lang.Object]
opcode [4C] - 0035: astore_1
opcode [B2] - 0036: getstatic 142 [Fieldref: Main.stack, type = java.util.ArrayDeque]
opcode [B6] - 0039: invokevirtual 127 [Methodref: java.util.ArrayDeque.pop, parameter = (), returns = java.lang.Object]
opcode [4D] - 0042: astore_2
opcode [2B] - 0043: aload_1
opcode [2C] - 0044: aload_2
opcode [B6] - 0045: invokevirtual 107 [Methodref: java.lang.Object.equals, parameter = (java.lang.Object), returns = boolean ]
opcode [B8] - 0048: invokestatic 113 [Methodref: java.lang.Integer.valueOf, parameter = (int), returns = java.lang.Integer]
opcode [B2] - 0051: getstatic 142 [Fieldref: Main.stack, type = java.util.ArrayDeque]
opcode [5F] - 0054: swap
opcode [B6] - 0055: invokevirtual 128 [Methodref: java.util.ArrayDeque.push, parameter = (java.lang.Object), returns = void]
opcode [B2] - 0058: getstatic 142 [Fieldref: Main.stack, type = java.util.ArrayDeque]
opcode [B6] - 0061: invokevirtual 127 [Methodref: java.util.ArrayDeque.pop, parameter = (), returns = java.lang.Object]
opcode [C0] - 0064: checkcast 72 [Class: java.lang.Integer]
opcode [B6] - 0067: invokevirtual 114 [Methodref: java.lang.Integer.intValue, parameter = (), returns = int]
opcode [99] - 0070: ifeq 30
opcode [12] - 0073: ldc 145 [Integer: 1]
opcode [B8] - 0075: invokestatic 113 [Methodref: java.lang.Integer.valueOf, parameter = (int), returns = java.lang.Integer]
opcode [B2] - 0078: getstatic 142 [Fieldref: Main.stack, type = java.util.ArrayDeque]
opcode [5F] - 0081: swap
opcode [B6] - 0082: invokevirtual 128 [Methodref: java.util.ArrayDeque.push, parameter = (java.lang.Object), returns = void]
opcode [12] - 0085: ldc 145 [Integer: 1]
opcode [B8] - 0087: invokestatic 113 [Methodref: java.lang.Integer.valueOf, parameter = (int), returns = java.lang.Integer]
opcode [B2] - 0090: getstatic 142 [Fieldref: Main.stack, type = java.util.ArrayDeque]
opcode [5F] - 0093: swap
opcode [B6] - 0094: invokevirtual 128 [Methodref: java.util.ArrayDeque.push, parameter = (java.lang.Object), returns = void]
opcode [A7] - 0097: goto 12
opcode [19] - 0100: aload 4
opcode [B2] - 0102: getstatic 142 [Fieldref: Main.stack, type = java.util.ArrayDeque]
opcode [5F] - 0105: swap
opcode [B6] - 0106: invokevirtual 128 [Methodref: java.util.ArrayDeque.push, parameter = (java.lang.Object), returns = void]
opcode [B1] - 0109: return

Code main:
12 92 B8 00 71 B2 00 8E 5F B6 00 80 B2 00 8E B6
00 7F 3A 04 19 04 B2 00 8E 5F B6 00 80 12 91 B8
00 71 B2 00 8E 5F B6 00 80 B2 00 8E B6 00 7F 4C
B2 00 8E B6 00 7F 4D 2B 2C B6 00 6B B8 00 71 B2
00 8E 5F B6 00 80 B2 00 8E B6 00 7F C0 00 48 B6
00 72 99 00 1E 12 91 B8 00 71 B2 00 8E 5F B6 00
80 12 91 B8 00 71 B2 00 8E 5F B6 00 80 A7 00 0C
19 04 B2 00 8E 5F B6 00 80 B1

opcode [12] - 0000: ldc 146 [Integer: 5]
opcode [B8] - 0002: invokestatic 113 [Methodref: java.lang.Integer.valueOf, parameter = (int), returns = java.lang.Integer]
opcode [B2] - 0005: getstatic 142 [Fieldref: Main.stack, type = java.util.ArrayDeque]
opcode [5F] - 0008: swap
opcode [B6] - 0009: invokevirtual 128 [Methodref: java.util.ArrayDeque.push, parameter = (java.lang.Object), returns = void]
opcode [B2] - 0012: getstatic 142 [Fieldref: Main.stack, type = java.util.ArrayDeque]
opcode [B6] - 0015: invokevirtual 127 [Methodref: java.util.ArrayDeque.pop, parameter = (), returns = java.lang.Object]
opcode [3A] - 0018: dstore 4
opcode [19] - 0020: aload 4
opcode [B2] - 0022: getstatic 142 [Fieldref: Main.stack, type = java.util.ArrayDeque]
opcode [5F] - 0025: swap
opcode [B6] - 0026: invokevirtual 128 [Methodref: java.util.ArrayDeque.push, parameter = (java.lang.Object), returns = void]
opcode [12] - 0029: ldc 145 [Integer: 1]
opcode [B8] - 0031: invokestatic 113 [Methodref: java.lang.Integer.valueOf, parameter = (int), returns = java.lang.Integer]
opcode [B2] - 0034: getstatic 142 [Fieldref: Main.stack, type = java.util.ArrayDeque]
opcode [5F] - 0037: swap
opcode [B6] - 0038: invokevirtual 128 [Methodref: java.util.ArrayDeque.push, parameter = (java.lang.Object), returns = void]
opcode [B2] - 0041: getstatic 142 [Fieldref: Main.stack, type = java.util.ArrayDeque]
opcode [B6] - 0044: invokevirtual 127 [Methodref: java.util.ArrayDeque.pop, parameter = (), returns = java.lang.Object]
opcode [4C] - 0047: astore_1
opcode [B2] - 0048: getstatic 142 [Fieldref: Main.stack, type = java.util.ArrayDeque]
opcode [B6] - 0051: invokevirtual 127 [Methodref: java.util.ArrayDeque.pop, parameter = (), returns = java.lang.Object]
opcode [4D] - 0054: astore_2
opcode [2B] - 0055: aload_1
opcode [2C] - 0056: aload_2
opcode [B6] - 0057: invokevirtual 107 [Methodref: java.lang.Object.equals, parameter = (java.lang.Object), returns = boolean ]
opcode [B8] - 0060: invokestatic 113 [Methodref: java.lang.Integer.valueOf, parameter = (int), returns = java.lang.Integer]
opcode [B2] - 0063: getstatic 142 [Fieldref: Main.stack, type = java.util.ArrayDeque]
opcode [5F] - 0066: swap
opcode [B6] - 0067: invokevirtual 128 [Methodref: java.util.ArrayDeque.push, parameter = (java.lang.Object), returns = void]
opcode [B2] - 0070: getstatic 142 [Fieldref: Main.stack, type = java.util.ArrayDeque]
opcode [B6] - 0073: invokevirtual 127 [Methodref: java.util.ArrayDeque.pop, parameter = (), returns = java.lang.Object]
opcode [C0] - 0076: checkcast 72 [Class: java.lang.Integer]
opcode [B6] - 0079: invokevirtual 114 [Methodref: java.lang.Integer.intValue, parameter = (), returns = int]
opcode [99] - 0082: ifeq 30
opcode [12] - 0085: ldc 145 [Integer: 1]
opcode [B8] - 0087: invokestatic 113 [Methodref: java.lang.Integer.valueOf, parameter = (int), returns = java.lang.Integer]
opcode [B2] - 0090: getstatic 142 [Fieldref: Main.stack, type = java.util.ArrayDeque]
opcode [5F] - 0093: swap
opcode [B6] - 0094: invokevirtual 128 [Methodref: java.util.ArrayDeque.push, parameter = (java.lang.Object), returns = void]
opcode [12] - 0097: ldc 145 [Integer: 1]
opcode [B8] - 0099: invokestatic 113 [Methodref: java.lang.Integer.valueOf, parameter = (int), returns = java.lang.Integer]
opcode [B2] - 0102: getstatic 142 [Fieldref: Main.stack, type = java.util.ArrayDeque]
opcode [5F] - 0105: swap
opcode [B6] - 0106: invokevirtual 128 [Methodref: java.util.ArrayDeque.push, parameter = (java.lang.Object), returns = void]
opcode [A7] - 0109: goto 12
opcode [19] - 0112: aload 4
opcode [B2] - 0114: getstatic 142 [Fieldref: Main.stack, type = java.util.ArrayDeque]
opcode [5F] - 0117: swap
opcode [B6] - 0118: invokevirtual 128 [Methodref: java.util.ArrayDeque.push, parameter = (java.lang.Object), returns = void]
opcode [B1] - 0121: return

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants