ccebinger / SWPSoSe14

2 stars 1 forks source link

fakurek erstellt identische methoden #258

Open vincentbohlen opened 10 years ago

vincentbohlen commented 10 years ago

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

Zelldon commented 10 years ago

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

vincentbohlen commented 10 years ago

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