Hi! I have a small problem with the line number resolution again: In one of my example files I have the invocation if(f.getFunction().equals(Protocol.STR_VORTEX)) Now I want to resolve the callers for "equals". My algorithm correctly returns bytecode Line 3714 for this call, which refers to the line 578 invokevirtual #95 <Method boolean equals(java.lang.Object)> (output by javap). But when I parse the class with Soot, line 3714 was for some reason attached to the last invocation before: 573 invokevirtual #99 <Method java.lang.String getFunction()> Does anyone have a clue, why? I have the source file and a javap dump attached. Thanks, Eric ------------------------------------------------------------ Eric Bodden CS-DIP full time student @ University of Kent at Canterbury UKC internal phone: 5095 ICQ UIN: 12656220, secure mail on demand Website: http://www.bodden.de
Attachment:
Board.java
Description: Binary data
Compiled from Board.java public class board.Board extends java.lang.Object { protected board.Field board[][]; protected int width; protected int height; protected int depth; protected int n_dest; protected int n_startpoints_; protected board.Position startpoints_[]; protected board.Position destinations[]; public board.Board(int,int,int); public board.Board(java.lang.String); protected int actionToInt(java.lang.String); protected int directionToInt(java.lang.String); public int getDepth(); public board.Position getDest(int); public board.Field getField(int, int); public int getHeight(); public int getNDest(); public int getNStartPoints(); public board.Position getStartPoint(int); public int getWidth(); protected java.lang.String intToAction(int); protected java.lang.String intToDirection(int); protected java.lang.String intToSpin(int); public void load(java.lang.String) throws java.io.IOException; public void randomit(); public void save(java.lang.String); public void setDest(int, int, int); public void setDest(int, board.Position); public void setField(int, int, board.Field); public void setNDest(int); public void setNStartPoints(int); public void setStartPoint(int, board.Position); protected int spinToInt(java.lang.String); public java.lang.String toString(); } Method board.Board(int,int,int) 0 aload_0 1 invokespecial #73 <Method java.lang.Object()> 4 aload_0 5 bipush 7 7 putfield #115 <Field int numActions> 10 aload_0 11 iload_1 12 putfield #133 <Field int width> 15 aload_0 16 iload_2 17 putfield #107 <Field int height> 20 aload_0 21 iload_3 22 putfield #93 <Field int depth> 25 aload_0 26 iload_1 27 iload_2 28 multianewarray #51 dim #2 <Class [[Lboard.Field;> 32 putfield #88 <Field board.Field board[][]> 35 iconst_0 36 istore 4 38 goto 80 41 iconst_0 42 istore 5 44 goto 71 47 aload_0 48 getfield #88 <Field board.Field board[][]> 51 iload 4 53 aaload 54 iload 5 56 new #53 <Class board.Field> 59 dup 60 aload_0 61 getfield #93 <Field int depth> 64 invokespecial #76 <Method board.Field(int)> 67 aastore 68 iinc 5 1 71 iload 5 73 iload_2 74 if_icmplt 47 77 iinc 4 1 80 iload 4 82 iload_1 83 if_icmplt 41 86 return Line numbers for method board.Board(int,int,int) line 1549: 0 line 1142: 4 line 1143: 5 line 1142: 7 line 1561: 10 line 1565: 11 line 1562: 12 line 1567: 15 line 1571: 16 line 1568: 17 line 1573: 20 line 1577: 21 line 1574: 22 line 1579: 25 line 1584: 26 line 1587: 27 line 1581: 28 line 1579: 32 line 1595: 35 line 1593: 36 line 1590: 38 line 1610: 41 line 1608: 42 line 1605: 44 line 1620: 47 line 1622: 51 line 1621: 53 line 1625: 54 line 1628: 56 line 1631: 60 line 1628: 64 line 1624: 67 line 1617: 68 line 1612: 71 line 1614: 73 line 1613: 74 line 1602: 77 line 1597: 80 line 1599: 82 line 1598: 83 line 1549: 86 Method board.Board(java.lang.String) 0 aload_0 1 invokespecial #73 <Method java.lang.Object()> 4 aload_0 5 bipush 7 7 putfield #115 <Field int numActions> 10 aload_0 11 aload_1 12 invokevirtual #111 <Method void load(java.lang.String)> 15 goto 50 18 astore_2 19 getstatic #117 <Field java.io.PrintStream out> 22 new #68 <Class java.lang.StringBuffer> 25 dup 26 ldc #10 <String "ERROR in reading a board from '"> 28 invokespecial #83 <Method java.lang.StringBuffer(java.lang.String)> 31 aload_1 32 invokevirtual #87 <Method java.lang.StringBuffer append(java.lang.String)> 35 ldc #7 <String "': "> 37 invokevirtual #87 <Method java.lang.StringBuffer append(java.lang.String)> 40 aload_2 41 invokevirtual #86 <Method java.lang.StringBuffer append(java.lang.Object)> 44 invokevirtual #131 <Method java.lang.String toString()> 47 invokevirtual #119 <Method void println(java.lang.String)> 50 return Exception table: from to target type 10 15 18 <Class java.lang.Exception> Line numbers for method board.Board(java.lang.String) line 1509: 0 line 1142: 4 line 1143: 5 line 1142: 7 line 1515: 10 line 1517: 10 line 1521: 11 line 1520: 12 line 1515: 15 line 1525: 18 line 1532: 19 line 1537: 22 line 1539: 31 line 1541: 35 line 1543: 40 line 1542: 44 line 1536: 47 line 1509: 50 Method int actionToInt(java.lang.String) 0 iconst_0 1 istore_2 2 goto 22 5 aload_1 6 aload_0 7 iload_2 8 invokevirtual #108 <Method java.lang.String intToAction(int)> 11 invokevirtual #95 <Method boolean equals(java.lang.Object)> 14 ifeq 19 17 iload_2 18 ireturn 19 iinc 2 1 22 iload_2 23 bipush 7 25 if_icmplt 5 28 getstatic #117 <Field java.io.PrintStream out> 31 ldc #12 <String "Error in actionToInt "> 33 invokevirtual #119 <Method void println(java.lang.String)> 36 iconst_0 37 ireturn Line numbers for method int actionToInt(java.lang.String) line 1241: 0 line 1239: 1 line 1236: 2 line 1253: 5 line 1258: 6 line 1259: 7 line 1258: 8 line 1256: 11 line 1264: 17 line 1263: 18 line 1248: 19 line 1243: 22 line 1245: 23 line 1244: 25 line 1268: 28 line 1273: 31 line 1272: 33 line 1277: 36 line 1276: 37 Method int directionToInt(java.lang.String) 0 iconst_0 1 istore_2 2 goto 22 5 aload_1 6 aload_0 7 iload_2 8 invokevirtual #109 <Method java.lang.String intToDirection(int)> 11 invokevirtual #95 <Method boolean equals(java.lang.Object)> 14 ifeq 19 17 iload_2 18 ireturn 19 iinc 2 1 22 iload_2 23 iconst_4 24 if_icmplt 5 27 getstatic #117 <Field java.io.PrintStream out> 30 ldc #13 <String "Error in directionToInt"> 32 invokevirtual #119 <Method void println(java.lang.String)> 35 iconst_0 36 ireturn Line numbers for method int directionToInt(java.lang.String) line 1360: 0 line 1358: 1 line 1355: 2 line 1372: 5 line 1377: 6 line 1378: 7 line 1377: 8 line 1375: 11 line 1383: 17 line 1382: 18 line 1366: 19 line 1362: 22 line 1364: 23 line 1363: 24 line 1387: 27 line 1392: 30 line 1391: 32 line 1396: 35 line 1395: 36 Method int getDepth() 0 aload_0 1 getfield #93 <Field int depth> 4 ireturn Line numbers for method int getDepth() line 2015: 0 line 2014: 4 Method board.Position getDest(int) 0 aload_0 1 getfield #94 <Field board.Position destinations[]> 4 iload_1 5 aaload 6 areturn Line numbers for method board.Position getDest(int) line 1709: 0 line 1711: 4 line 1710: 5 line 1708: 6 Method board.Field getField(int, int) 0 aload_0 1 getfield #88 <Field board.Field board[][]> 4 iload_1 5 aaload 6 iload_2 7 aaload 8 areturn Line numbers for method board.Field getField(int, int) line 2030: 0 line 2032: 4 line 2031: 5 line 2035: 6 line 2034: 7 line 2029: 8 Method int getHeight() 0 aload_0 1 getfield #107 <Field int height> 4 ireturn Line numbers for method int getHeight() line 2005: 0 line 2004: 4 Method int getNDest() 0 aload_0 1 getfield #112 <Field int n_dest> 4 ireturn Line numbers for method int getNDest() line 1644: 0 line 1645: 1 line 1643: 4 Method int getNStartPoints() 0 aload_0 1 getfield #113 <Field int n_startpoints_> 4 ireturn Line numbers for method int getNStartPoints() line 1790: 0 line 1789: 4 Method board.Position getStartPoint(int) 0 aload_0 1 getfield #129 <Field board.Position startpoints_[]> 4 iload_1 5 aaload 6 areturn Line numbers for method board.Position getStartPoint(int) line 1802: 0 line 1804: 4 line 1803: 5 line 1801: 6 Method int getWidth() 0 aload_0 1 getfield #133 <Field int width> 4 ireturn Line numbers for method int getWidth() line 1995: 0 line 1994: 4 Method java.lang.String intToAction(int) 0 iload_1 1 tableswitch 0 to 6: default=65 0: 44 1: 47 2: 50 3: 53 4: 56 5: 59 6: 62 44 ldc #40 <String "normal"> 46 areturn 47 ldc #22 <String "alien"> 49 areturn 50 ldc #37 <String "mountain"> 52 areturn 53 ldc #36 <String "marsh"> 55 areturn 56 ldc #34 <String "glacier"> 58 areturn 59 ldc #49 <String "vortex"> 61 areturn 62 ldc #48 <String "tunnel"> 64 areturn 65 getstatic #117 <Field java.io.PrintStream out> 68 ldc #12 <String "Error in actionToInt "> 70 invokevirtual #119 <Method void println(java.lang.String)> 73 ldc #30 <String "error"> 75 areturn Line numbers for method java.lang.String intToAction(int) line 1155: 0 line 1153: 1 line 1163: 44 line 1161: 46 line 1171: 47 line 1169: 49 line 1179: 50 line 1177: 52 line 1187: 53 line 1185: 55 line 1195: 56 line 1193: 58 line 1203: 59 line 1201: 61 line 1211: 62 line 1209: 64 line 1216: 65 line 1221: 68 line 1220: 70 line 1225: 73 line 1224: 75 Method java.lang.String intToDirection(int) 0 iload_1 1 tableswitch 0 to 3: default=44 0: 32 1: 38 2: 35 3: 41 32 ldc #41 <String "north"> 34 areturn 35 ldc #45 <String "south"> 37 areturn 38 ldc #50 <String "west"> 40 areturn 41 ldc #29 <String "east"> 43 areturn 44 getstatic #117 <Field java.io.PrintStream out> 47 ldc #14 <String "Error in intToDirection"> 49 invokevirtual #119 <Method void println(java.lang.String)> 52 ldc #30 <String "error"> 54 areturn Line numbers for method java.lang.String intToDirection(int) line 1290: 0 line 1288: 1 line 1300: 32 line 1298: 34 line 1310: 35 line 1308: 37 line 1320: 38 line 1318: 40 line 1330: 41 line 1328: 43 line 1335: 44 line 1340: 47 line 1339: 49 line 1344: 52 line 1343: 54 Method java.lang.String intToSpin(int) 0 iload_1 1 tableswitch 0 to 2: default=37 0: 28 1: 31 2: 34 28 ldc #35 <String "left"> 30 areturn 31 ldc #44 <String "right"> 33 areturn 34 ldc #33 <String "flip"> 36 areturn 37 getstatic #117 <Field java.io.PrintStream out> 40 ldc #15 <String "Error in intToSpin"> 42 invokevirtual #119 <Method void println(java.lang.String)> 45 ldc #30 <String "error"> 47 areturn Line numbers for method java.lang.String intToSpin(int) line 1409: 0 line 1407: 1 line 1419: 28 line 1417: 30 line 1429: 31 line 1427: 33 line 1439: 34 line 1437: 36 line 1444: 37 line 1449: 40 line 1448: 42 line 1453: 45 line 1452: 47 Method void load(java.lang.String) 0 new #58 <Class java.io.FileReader> 3 dup 4 aload_1 5 invokespecial #80 <Method java.io.FileReader(java.lang.String)> 8 astore_2 9 new #55 <Class com.FileTokenizer> 12 dup 13 aload_2 14 invokespecial #78 <Method com.FileTokenizer(java.io.InputStreamReader)> 17 astore_3 18 new #71 <Class java.util.Vector> 21 dup 22 invokespecial #75 <Method java.util.Vector()> 25 astore 4 27 iconst_0 28 istore 5 30 goto 1048 33 aload 4 35 invokevirtual #89 <Method void clear()> 38 aload_3 39 invokevirtual #106 <Method java.util.Vector hear()> 42 astore 4 44 aload 4 46 iconst_0 47 invokevirtual #96 <Method java.lang.Object get(int)> 50 checkcast #57 <Class com.Token> 53 getfield #130 <Field java.lang.String sval> 56 ldc #25 <String "boardsize"> 58 invokevirtual #95 <Method boolean equals(java.lang.Object)> 61 ifeq 191 64 aload_0 65 aload 4 67 iconst_1 68 invokevirtual #96 <Method java.lang.Object get(int)> 71 checkcast #57 <Class com.Token> 74 getfield #116 <Field double nval> 77 d2i 78 putfield #133 <Field int width> 81 aload_0 82 aload 4 84 iconst_2 85 invokevirtual #96 <Method java.lang.Object get(int)> 88 checkcast #57 <Class com.Token> 91 getfield #116 <Field double nval> 94 d2i 95 putfield #107 <Field int height> 98 aload_0 99 aload 4 101 iconst_3 102 invokevirtual #96 <Method java.lang.Object get(int)> 105 checkcast #57 <Class com.Token> 108 getfield #116 <Field double nval> 111 d2i 112 putfield #93 <Field int depth> 115 aload_0 116 aload_0 117 getfield #133 <Field int width> 120 aload_0 121 getfield #107 <Field int height> 124 multianewarray #51 dim #2 <Class [[Lboard.Field;> 128 putfield #88 <Field board.Field board[][]> 131 iconst_0 132 istore 6 134 goto 179 137 iconst_0 138 istore 7 140 goto 167 143 aload_0 144 getfield #88 <Field board.Field board[][]> 147 iload 6 149 aaload 150 iload 7 152 new #53 <Class board.Field> 155 dup 156 aload_0 157 getfield #93 <Field int depth> 160 invokespecial #76 <Method board.Field(int)> 163 aastore 164 iinc 7 1 167 iload 7 169 aload_0 170 getfield #107 <Field int height> 173 if_icmplt 143 176 iinc 6 1 179 iload 6 181 aload_0 182 getfield #133 <Field int width> 185 if_icmplt 137 188 goto 1048 191 aload 4 193 iconst_0 194 invokevirtual #96 <Method java.lang.Object get(int)> 197 checkcast #57 <Class com.Token> 200 getfield #130 <Field java.lang.String sval> 203 ldc #23 <String "board"> 205 invokevirtual #95 <Method boolean equals(java.lang.Object)> 208 ifeq 342 211 aload 4 213 invokevirtual #128 <Method int size()> 216 aload_0 217 getfield #93 <Field int depth> 220 aload_0 221 invokevirtual #105 <Method int getWidth()> 224 imul 225 iconst_3 226 iadd 227 if_icmpeq 238 230 getstatic #117 <Field java.io.PrintStream out> 233 ldc #18 <String "Line of the board of invalid size received. Continuing anyway"> 235 invokevirtual #119 <Method void println(java.lang.String)> 238 aload 4 240 iconst_1 241 invokevirtual #96 <Method java.lang.Object get(int)> 244 checkcast #57 <Class com.Token> 247 getfield #116 <Field double nval> 250 d2i 251 istore 6 253 iconst_2 254 istore 8 256 iconst_0 257 istore 9 259 goto 330 262 new #53 <Class board.Field> 265 dup 266 aload_0 267 getfield #93 <Field int depth> 270 invokespecial #76 <Method board.Field(int)> 273 astore 7 275 iconst_0 276 istore 10 278 goto 308 281 aload 7 283 iload 10 285 aload 4 287 iload 8 289 invokevirtual #96 <Method java.lang.Object get(int)> 292 checkcast #57 <Class com.Token> 295 getfield #116 <Field double nval> 298 d2i 299 invokevirtual #121 <Method void setComponent(int, int)> 302 iinc 8 1 305 iinc 10 1 308 iload 10 310 aload_0 311 getfield #93 <Field int depth> 314 if_icmplt 281 317 aload_0 318 iload 9 320 iload 6 322 aload 7 324 invokevirtual #122 <Method void setField(int, int, board.Field)> 327 iinc 9 1 330 iload 9 332 aload_0 333 invokevirtual #105 <Method int getWidth()> 336 if_icmplt 262 339 goto 1048 342 aload 4 344 iconst_0 345 invokevirtual #96 <Method java.lang.Object get(int)> 348 checkcast #57 <Class com.Token> 351 getfield #130 <Field java.lang.String sval> 354 ldc #38 <String "ndest"> 356 invokevirtual #95 <Method boolean equals(java.lang.Object)> 359 ifeq 393 362 aload_0 363 aload 4 365 iconst_1 366 invokevirtual #96 <Method java.lang.Object get(int)> 369 checkcast #57 <Class com.Token> 372 getfield #116 <Field double nval> 375 d2i 376 putfield #112 <Field int n_dest> 379 aload_0 380 aload_0 381 getfield #112 <Field int n_dest> 384 anewarray class #54 <Class board.Position> 387 putfield #94 <Field board.Position destinations[]> 390 goto 1048 393 aload 4 395 iconst_0 396 invokevirtual #96 <Method java.lang.Object get(int)> 399 checkcast #57 <Class com.Token> 402 getfield #130 <Field java.lang.String sval> 405 ldc #42 <String "nstartpoints"> 407 invokevirtual #95 <Method boolean equals(java.lang.Object)> 410 ifeq 444 413 aload_0 414 aload 4 416 iconst_1 417 invokevirtual #96 <Method java.lang.Object get(int)> 420 checkcast #57 <Class com.Token> 423 getfield #116 <Field double nval> 426 d2i 427 putfield #113 <Field int n_startpoints_> 430 aload_0 431 aload_0 432 getfield #113 <Field int n_startpoints_> 435 anewarray class #54 <Class board.Position> 438 putfield #129 <Field board.Position startpoints_[]> 441 goto 1048 444 aload 4 446 iconst_0 447 invokevirtual #96 <Method java.lang.Object get(int)> 450 checkcast #57 <Class com.Token> 453 getfield #130 <Field java.lang.String sval> 456 ldc #46 <String "startpoint"> 458 invokevirtual #95 <Method boolean equals(java.lang.Object)> 461 ifeq 522 464 aload 4 466 iconst_1 467 invokevirtual #96 <Method java.lang.Object get(int)> 470 checkcast #57 <Class com.Token> 473 getfield #116 <Field double nval> 476 d2i 477 istore 6 479 aload_0 480 getfield #129 <Field board.Position startpoints_[]> 483 iload 6 485 new #54 <Class board.Position> 488 dup 489 aload 4 491 iconst_2 492 invokevirtual #96 <Method java.lang.Object get(int)> 495 checkcast #57 <Class com.Token> 498 getfield #116 <Field double nval> 501 d2i 502 aload 4 504 iconst_3 505 invokevirtual #96 <Method java.lang.Object get(int)> 508 checkcast #57 <Class com.Token> 511 getfield #116 <Field double nval> 514 d2i 515 invokespecial #77 <Method board.Position(int,int)> 518 aastore 519 goto 1048 522 aload 4 524 iconst_0 525 invokevirtual #96 <Method java.lang.Object get(int)> 528 checkcast #57 <Class com.Token> 531 getfield #130 <Field java.lang.String sval> 534 ldc #31 <String "field"> 536 invokevirtual #95 <Method boolean equals(java.lang.Object)> 539 ifeq 947 542 new #54 <Class board.Position> 545 dup 546 aload 4 548 iconst_1 549 invokevirtual #96 <Method java.lang.Object get(int)> 552 checkcast #57 <Class com.Token> 555 getfield #116 <Field double nval> 558 d2i 559 aload 4 561 iconst_2 562 invokevirtual #96 <Method java.lang.Object get(int)> 565 checkcast #57 <Class com.Token> 568 getfield #116 <Field double nval> 571 d2i 572 invokespecial #77 <Method board.Position(int,int)> 575 astore 6 577 aload_0 578 getfield #88 <Field board.Field board[][]> 581 aload 6 583 getfield #134 <Field int x> 586 aaload 587 aload 6 589 getfield #135 <Field int y> 592 aaload 593 aload 4 595 iconst_3 596 invokevirtual #96 <Method java.lang.Object get(int)> 599 checkcast #57 <Class com.Token> 602 getfield #130 <Field java.lang.String sval> 605 invokevirtual #123 <Method void setFunction(java.lang.String)> 608 aload 4 610 iconst_3 611 invokevirtual #96 <Method java.lang.Object get(int)> 614 checkcast #57 <Class com.Token> 617 getfield #130 <Field java.lang.String sval> 620 ldc #48 <String "tunnel"> 622 invokevirtual #95 <Method boolean equals(java.lang.Object)> 625 ifeq 683 628 aload_0 629 getfield #88 <Field board.Field board[][]> 632 aload 6 634 getfield #134 <Field int x> 637 aaload 638 aload 6 640 getfield #135 <Field int y> 643 aaload 644 new #54 <Class board.Position> 647 dup 648 aload 4 650 iconst_4 651 invokevirtual #96 <Method java.lang.Object get(int)> 654 checkcast #57 <Class com.Token> 657 getfield #116 <Field double nval> 660 d2i 661 aload 4 663 iconst_5 664 invokevirtual #96 <Method java.lang.Object get(int)> 667 checkcast #57 <Class com.Token> 670 getfield #116 <Field double nval> 673 d2i 674 invokespecial #77 <Method board.Position(int,int)> 677 invokevirtual #126 <Method void setTunnelEnd(board.Position)> 680 goto 1048 683 aload 4 685 iconst_3 686 invokevirtual #96 <Method java.lang.Object get(int)> 689 checkcast #57 <Class com.Token> 692 getfield #130 <Field java.lang.String sval> 695 ldc #49 <String "vortex"> 697 invokevirtual #95 <Method boolean equals(java.lang.Object)> 700 ifeq 737 703 aload_0 704 getfield #88 <Field board.Field board[][]> 707 aload 6 709 getfield #134 <Field int x> 712 aaload 713 aload 6 715 getfield #135 <Field int y> 718 aaload 719 aload 4 721 iconst_4 722 invokevirtual #96 <Method java.lang.Object get(int)> 725 checkcast #57 <Class com.Token> 728 getfield #130 <Field java.lang.String sval> 731 invokevirtual #127 <Method void setVortexDirection(java.lang.String)> 734 goto 1048 737 aload 4 739 iconst_3 740 invokevirtual #96 <Method java.lang.Object get(int)> 743 checkcast #57 <Class com.Token> 746 getfield #130 <Field java.lang.String sval> 749 ldc #34 <String "glacier"> 751 invokevirtual #95 <Method boolean equals(java.lang.Object)> 754 ifeq 791 757 aload_0 758 getfield #88 <Field board.Field board[][]> 761 aload 6 763 getfield #134 <Field int x> 766 aaload 767 aload 6 769 getfield #135 <Field int y> 772 aaload 773 aload 4 775 iconst_4 776 invokevirtual #96 <Method java.lang.Object get(int)> 779 checkcast #57 <Class com.Token> 782 getfield #130 <Field java.lang.String sval> 785 invokevirtual #124 <Method void setGlacierDirection(java.lang.String)> 788 goto 1048 791 aload 4 793 iconst_3 794 invokevirtual #96 <Method java.lang.Object get(int)> 797 checkcast #57 <Class com.Token> 800 getfield #130 <Field java.lang.String sval> 803 ldc #36 <String "marsh"> 805 invokevirtual #95 <Method boolean equals(java.lang.Object)> 808 ifeq 846 811 aload_0 812 getfield #88 <Field board.Field board[][]> 815 aload 6 817 getfield #134 <Field int x> 820 aaload 821 aload 6 823 getfield #135 <Field int y> 826 aaload 827 aload 4 829 iconst_4 830 invokevirtual #96 <Method java.lang.Object get(int)> 833 checkcast #57 <Class com.Token> 836 getfield #116 <Field double nval> 839 d2i 840 invokevirtual #125 <Method void setMarshDepth(int)> 843 goto 1048 846 aload 4 848 iconst_3 849 invokevirtual #96 <Method java.lang.Object get(int)> 852 checkcast #57 <Class com.Token> 855 getfield #130 <Field java.lang.String sval> 858 ldc #37 <String "mountain"> 860 invokevirtual #95 <Method boolean equals(java.lang.Object)> 863 ifne 1048 866 aload 4 868 iconst_3 869 invokevirtual #96 <Method java.lang.Object get(int)> 872 checkcast #57 <Class com.Token> 875 getfield #130 <Field java.lang.String sval> 878 ldc #22 <String "alien"> 880 invokevirtual #95 <Method boolean equals(java.lang.Object)> 883 ifne 1048 886 aload 4 888 iconst_3 889 invokevirtual #96 <Method java.lang.Object get(int)> 892 checkcast #57 <Class com.Token> 895 getfield #130 <Field java.lang.String sval> 898 ldc #40 <String "normal"> 900 invokevirtual #95 <Method boolean equals(java.lang.Object)> 903 ifne 1048 906 getstatic #117 <Field java.io.PrintStream out> 909 new #68 <Class java.lang.StringBuffer> 912 dup 913 ldc #17 <String "Got unknown field Type: '"> 915 invokespecial #83 <Method java.lang.StringBuffer(java.lang.String)> 918 aload 4 920 iconst_1 921 invokevirtual #96 <Method java.lang.Object get(int)> 924 checkcast #57 <Class com.Token> 927 getfield #130 <Field java.lang.String sval> 930 invokevirtual #87 <Method java.lang.StringBuffer append(java.lang.String)> 933 ldc #5 <String "'. continuing nonetheless."> 935 invokevirtual #87 <Method java.lang.StringBuffer append(java.lang.String)> 938 invokevirtual #131 <Method java.lang.String toString()> 941 invokevirtual #119 <Method void println(java.lang.String)> 944 goto 1048 947 aload 4 949 iconst_0 950 invokevirtual #96 <Method java.lang.Object get(int)> 953 checkcast #57 <Class com.Token> 956 getfield #130 <Field java.lang.String sval> 959 ldc #27 <String "destination"> 961 invokevirtual #95 <Method boolean equals(java.lang.Object)> 964 ifeq 1025 967 aload 4 969 iconst_1 970 invokevirtual #96 <Method java.lang.Object get(int)> 973 checkcast #57 <Class com.Token> 976 getfield #116 <Field double nval> 979 d2i 980 istore 6 982 aload_0 983 getfield #94 <Field board.Position destinations[]> 986 iload 6 988 new #54 <Class board.Position> 991 dup 992 aload 4 994 iconst_2 995 invokevirtual #96 <Method java.lang.Object get(int)> 998 checkcast #57 <Class com.Token> 1001 getfield #116 <Field double nval> 1004 d2i 1005 aload 4 1007 iconst_3 1008 invokevirtual #96 <Method java.lang.Object get(int)> 1011 checkcast #57 <Class com.Token> 1014 getfield #116 <Field double nval> 1017 d2i 1018 invokespecial #77 <Method board.Position(int,int)> 1021 aastore 1022 goto 1048 1025 aload 4 1027 iconst_0 1028 invokevirtual #96 <Method java.lang.Object get(int)> 1031 checkcast #57 <Class com.Token> 1034 getfield #130 <Field java.lang.String sval> 1037 ldc #32 <String "fileend"> 1039 invokevirtual #95 <Method boolean equals(java.lang.Object)> 1042 ifeq 1048 1045 iconst_1 1046 istore 5 1048 iload 5 1050 ifeq 33 1053 aload_2 1054 invokevirtual #90 <Method void close()> 1057 getstatic #117 <Field java.io.PrintStream out> 1060 new #68 <Class java.lang.StringBuffer> 1063 dup 1064 ldc #19 <String "Read board from '"> 1066 invokespecial #83 <Method java.lang.StringBuffer(java.lang.String)> 1069 aload_1 1070 invokevirtual #87 <Method java.lang.StringBuffer append(java.lang.String)> 1073 ldc #6 <String "':"> 1075 invokevirtual #87 <Method java.lang.StringBuffer append(java.lang.String)> 1078 invokevirtual #131 <Method java.lang.String toString()> 1081 invokevirtual #119 <Method void println(java.lang.String)> 1084 goto 1152 1087 astore_2 1088 getstatic #117 <Field java.io.PrintStream out> 1091 new #68 <Class java.lang.StringBuffer> 1094 dup 1095 ldc #10 <String "ERROR in reading a board from '"> 1097 invokespecial #83 <Method java.lang.StringBuffer(java.lang.String)> 1100 aload_1 1101 invokevirtual #87 <Method java.lang.StringBuffer append(java.lang.String)> 1104 ldc #7 <String "': "> 1106 invokevirtual #87 <Method java.lang.StringBuffer append(java.lang.String)> 1109 aload_2 1110 invokevirtual #86 <Method java.lang.StringBuffer append(java.lang.Object)> 1113 invokevirtual #131 <Method java.lang.String toString()> 1116 invokevirtual #119 <Method void println(java.lang.String)> 1119 new #60 <Class java.io.IOException> 1122 dup 1123 new #68 <Class java.lang.StringBuffer> 1126 dup 1127 ldc #10 <String "ERROR in reading a board from '"> 1129 invokespecial #83 <Method java.lang.StringBuffer(java.lang.String)> 1132 aload_1 1133 invokevirtual #87 <Method java.lang.StringBuffer append(java.lang.String)> 1136 ldc #7 <String "': "> 1138 invokevirtual #87 <Method java.lang.StringBuffer append(java.lang.String)> 1141 aload_2 1142 invokevirtual #86 <Method java.lang.StringBuffer append(java.lang.Object)> 1145 invokevirtual #131 <Method java.lang.String toString()> 1148 invokespecial #82 <Method java.io.IOException(java.lang.String)> 1151 athrow 1152 return Exception table: from to target type 0 1084 1087 <Class java.lang.Exception> Line numbers for method void load(java.lang.String) line 2074: 0 line 2079: 0 line 2082: 4 line 2079: 5 line 2077: 8 line 2088: 9 line 2091: 13 line 2088: 14 line 2086: 17 line 2097: 18 line 2095: 25 line 2105: 27 line 2103: 28 line 2107: 30 line 2113: 33 line 2116: 35 line 2121: 38 line 2124: 39 line 2119: 42 line 2133: 44 line 2137: 46 line 2136: 47 line 2130: 50 line 2140: 53 line 2146: 56 line 2144: 58 line 2151: 64 line 2162: 65 line 2166: 67 line 2165: 68 line 2159: 71 line 2169: 74 line 2155: 77 line 2152: 78 line 2172: 81 line 2183: 82 line 2187: 84 line 2186: 85 line 2180: 88 line 2190: 91 line 2176: 94 line 2173: 95 line 2193: 98 line 2204: 99 line 2208: 101 line 2207: 102 line 2201: 105 line 2211: 108 line 2197: 111 line 2194: 112 line 2214: 115 line 2219: 116 line 2222: 120 line 2216: 124 line 2214: 128 line 2230: 131 line 2228: 132 line 2225: 134 line 2245: 137 line 2243: 138 line 2240: 140 line 2255: 143 line 2257: 147 line 2256: 149 line 2260: 150 line 2263: 152 line 2266: 156 line 2263: 160 line 2259: 163 line 2252: 164 line 2247: 167 line 2249: 169 line 2248: 173 line 2237: 176 line 2232: 179 line 2234: 181 line 2233: 185 line 2127: 188 line 2279: 191 line 2283: 193 line 2282: 194 line 2276: 197 line 2286: 200 line 2292: 203 line 2290: 205 line 2299: 211 line 2302: 213 line 2305: 216 line 2307: 220 line 2310: 221 line 2306: 224 line 2313: 225 line 2312: 226 line 2304: 227 line 2317: 230 line 2322: 233 line 2321: 235 line 2336: 238 line 2340: 240 line 2339: 241 line 2333: 244 line 2343: 247 line 2329: 250 line 2327: 251 line 2352: 253 line 2350: 254 line 2359: 256 line 2357: 257 line 2354: 259 line 2375: 262 line 2378: 266 line 2375: 270 line 2373: 273 line 2386: 275 line 2384: 276 line 2381: 278 line 2396: 281 line 2400: 283 line 2409: 285 line 2413: 287 line 2412: 289 line 2406: 292 line 2416: 295 line 2402: 298 line 2399: 299 line 2421: 302 line 2393: 305 line 2388: 308 line 2390: 310 line 2389: 314 line 2424: 317 line 2428: 318 line 2430: 320 line 2432: 322 line 2427: 324 line 2370: 327 line 2361: 330 line 2363: 332 line 2366: 333 line 2362: 336 line 2273: 339 line 2444: 342 line 2448: 344 line 2447: 345 line 2441: 348 line 2451: 351 line 2457: 354 line 2455: 356 line 2462: 362 line 2473: 363 line 2477: 365 line 2476: 366 line 2470: 369 line 2480: 372 line 2466: 375 line 2463: 376 line 2483: 379 line 2488: 380 line 2485: 384 line 2483: 387 line 2438: 390 line 2499: 393 line 2503: 395 line 2502: 396 line 2496: 399 line 2506: 402 line 2512: 405 line 2510: 407 line 2517: 413 line 2528: 414 line 2532: 416 line 2531: 417 line 2525: 420 line 2535: 423 line 2521: 426 line 2518: 427 line 2538: 430 line 2543: 431 line 2540: 435 line 2538: 438 line 2493: 441 line 2554: 444 line 2558: 446 line 2557: 447 line 2551: 450 line 2561: 453 line 2567: 456 line 2565: 458 line 2582: 464 line 2586: 466 line 2585: 467 line 2579: 470 line 2589: 473 line 2575: 476 line 2573: 477 line 2592: 479 line 2594: 483 line 2597: 485 line 2607: 489 line 2611: 491 line 2610: 492 line 2604: 495 line 2614: 498 line 2600: 501 line 2624: 502 line 2628: 504 line 2627: 505 line 2621: 508 line 2631: 511 line 2617: 514 line 2597: 515 line 2593: 518 line 2548: 519 line 2643: 522 line 2647: 524 line 2646: 525 line 2640: 528 line 2650: 531 line 2656: 534 line 2654: 536 line 2664: 542 line 2674: 546 line 2678: 548 line 2677: 549 line 2671: 552 line 2681: 555 line 2667: 558 line 2691: 559 line 2695: 561 line 2694: 562 line 2688: 565 line 2698: 568 line 2684: 571 line 2664: 572 line 2662: 575 line 2702: 577 line 2704: 581 line 2705: 583 line 2703: 586 line 2709: 587 line 2710: 589 line 2708: 592 line 2720: 593 line 2724: 595 line 2723: 596 line 2717: 599 line 2727: 602 line 2715: 605 line 2737: 608 line 2741: 610 line 2740: 611 line 2734: 614 line 2744: 617 line 2750: 620 line 2748: 622 line 2755: 628 line 2757: 632 line 2758: 634 line 2756: 637 line 2762: 638 line 2763: 640 line 2761: 643 line 2769: 644 line 2779: 648 line 2783: 650 line 2782: 651 line 2776: 654 line 2786: 657 line 2772: 660 line 2796: 661 line 2800: 663 line 2799: 664 line 2793: 667 line 2803: 670 line 2789: 673 line 2769: 674 line 2768: 677 line 2731: 680 line 2816: 683 line 2820: 685 line 2819: 686 line 2813: 689 line 2823: 692 line 2829: 695 line 2827: 697 line 2834: 703 line 2836: 707 line 2837: 709 line 2835: 712 line 2841: 713 line 2842: 715 line 2840: 718 line 2852: 719 line 2856: 721 line 2855: 722 line 2849: 725 line 2859: 728 line 2847: 731 line 2810: 734 line 2871: 737 line 2875: 739 line 2874: 740 line 2868: 743 line 2878: 746 line 2884: 749 line 2882: 751 line 2889: 757 line 2891: 761 line 2892: 763 line 2890: 766 line 2896: 767 line 2897: 769 line 2895: 772 line 2907: 773 line 2911: 775 line 2910: 776 line 2904: 779 line 2914: 782 line 2902: 785 line 2865: 788 line 2926: 791 line 2930: 793 line 2929: 794 line 2923: 797 line 2933: 800 line 2939: 803 line 2937: 805 line 2944: 811 line 2946: 815 line 2947: 817 line 2945: 820 line 2951: 821 line 2952: 823 line 2950: 826 line 2965: 827 line 2969: 829 line 2968: 830 line 2962: 833 line 2972: 836 line 2958: 839 line 2957: 840 line 2920: 843 line 2984: 846 line 2988: 848 line 2987: 849 line 2981: 852 line 2991: 855 line 2997: 858 line 2995: 860 line 3010: 866 line 3014: 868 line 3013: 869 line 3007: 872 line 3017: 875 line 3023: 878 line 3021: 880 line 3036: 886 line 3040: 888 line 3039: 889 line 3033: 892 line 3043: 895 line 3049: 898 line 3047: 900 line 3058: 906 line 3063: 909 line 3069: 918 line 3073: 920 line 3072: 921 line 3066: 924 line 3076: 927 line 3079: 933 line 3078: 938 line 3062: 941 line 2637: 944 line 3091: 947 line 3095: 949 line 3094: 950 line 3088: 953 line 3098: 956 line 3104: 959 line 3102: 961 line 3119: 967 line 3123: 969 line 3122: 970 line 3116: 973 line 3126: 976 line 3112: 979 line 3110: 980 line 3129: 982 line 3131: 986 line 3134: 988 line 3144: 992 line 3148: 994 line 3147: 995 line 3141: 998 line 3151: 1001 line 3137: 1004 line 3161: 1005 line 3165: 1007 line 3164: 1008 line 3158: 1011 line 3168: 1014 line 3154: 1017 line 3134: 1018 line 3130: 1021 line 3085: 1022 line 3180: 1025 line 3184: 1027 line 3183: 1028 line 3177: 1031 line 3187: 1034 line 3193: 1037 line 3191: 1039 line 3200: 1045 line 3198: 1046 line 2110: 1048 line 3204: 1053 line 3207: 1054 line 3211: 1057 line 3216: 1060 line 3218: 1069 line 3220: 1073 line 3219: 1078 line 3215: 1081 line 2074: 1084 line 3224: 1087 line 3231: 1088 line 3236: 1091 line 3238: 1100 line 3240: 1104 line 3242: 1109 line 3241: 1113 line 3235: 1116 line 3247: 1119 line 3250: 1123 line 3252: 1132 line 3254: 1136 line 3256: 1141 line 3255: 1145 line 3247: 1148 line 3245: 1151 line 2066: 1152 Method void randomit() 0 new #70 <Class java.util.Random> 3 dup 4 invokespecial #74 <Method java.util.Random()> 7 astore_1 8 iconst_0 9 istore_3 10 goto 585 13 iconst_0 14 istore 4 16 goto 573 19 aload_1 20 bipush 100 22 invokevirtual #114 <Method int nextInt(int)> 25 istore 5 27 goto 38 30 aload_1 31 bipush 100 33 invokevirtual #114 <Method int nextInt(int)> 36 istore 5 38 iload 4 40 ifne 50 43 iload 5 45 bipush 95 47 if_icmpge 30 50 iload 5 52 bipush 50 54 if_icmpge 74 57 aload_0 58 getfield #88 <Field board.Field board[][]> 61 iload_3 62 aaload 63 iload 4 65 aaload 66 ldc #40 <String "normal"> 68 invokevirtual #123 <Method void setFunction(java.lang.String)> 71 goto 570 74 iload 5 76 bipush 40 78 if_icmplt 105 81 iload 5 83 bipush 60 85 if_icmpge 105 88 aload_0 89 getfield #88 <Field board.Field board[][]> 92 iload_3 93 aaload 94 iload 4 96 aaload 97 ldc #37 <String "mountain"> 99 invokevirtual #123 <Method void setFunction(java.lang.String)> 102 goto 570 105 iload 5 107 bipush 60 109 if_icmplt 136 112 iload 5 114 bipush 65 116 if_icmpge 136 119 aload_0 120 getfield #88 <Field board.Field board[][]> 123 iload_3 124 aaload 125 iload 4 127 aaload 128 ldc #22 <String "alien"> 130 invokevirtual #123 <Method void setFunction(java.lang.String)> 133 goto 570 136 iload 5 138 bipush 65 140 if_icmplt 186 143 iload 5 145 bipush 75 147 if_icmpge 186 150 aload_0 151 getfield #88 <Field board.Field board[][]> 154 iload_3 155 aaload 156 iload 4 158 aaload 159 ldc #36 <String "marsh"> 161 invokevirtual #123 <Method void setFunction(java.lang.String)> 164 aload_0 165 getfield #88 <Field board.Field board[][]> 168 iload_3 169 aaload 170 iload 4 172 aaload 173 aload_1 174 iconst_3 175 invokevirtual #114 <Method int nextInt(int)> 178 iconst_1 179 iadd 180 invokevirtual #125 <Method void setMarshDepth(int)> 183 goto 570 186 iload 5 188 bipush 75 190 if_icmplt 320 193 iload 5 195 bipush 85 197 if_icmpge 320 200 aload_0 201 getfield #88 <Field board.Field board[][]> 204 iload_3 205 aaload 206 iload 4 208 aaload 209 ldc #34 <String "glacier"> 211 invokevirtual #123 <Method void setFunction(java.lang.String)> 214 aload_1 215 iconst_4 216 invokevirtual #114 <Method int nextInt(int)> 219 istore 5 221 iload 5 223 tableswitch 0 to 3: default=570 0: 252 1: 269 2: 286 3: 303 252 aload_0 253 getfield #88 <Field board.Field board[][]> 256 iload_3 257 aaload 258 iload 4 260 aaload 261 ldc #41 <String "north"> 263 invokevirtual #124 <Method void setGlacierDirection(java.lang.String)> 266 goto 570 269 aload_0 270 getfield #88 <Field board.Field board[][]> 273 iload_3 274 aaload 275 iload 4 277 aaload 278 ldc #45 <String "south"> 280 invokevirtual #124 <Method void setGlacierDirection(java.lang.String)> 283 goto 570 286 aload_0 287 getfield #88 <Field board.Field board[][]> 290 iload_3 291 aaload 292 iload 4 294 aaload 295 ldc #50 <String "west"> 297 invokevirtual #124 <Method void setGlacierDirection(java.lang.String)> 300 goto 570 303 aload_0 304 getfield #88 <Field board.Field board[][]> 307 iload_3 308 aaload 309 iload 4 311 aaload 312 ldc #29 <String "east"> 314 invokevirtual #124 <Method void setGlacierDirection(java.lang.String)> 317 goto 570 320 iload 5 322 bipush 85 324 if_icmplt 435 327 iload 5 329 bipush 95 331 if_icmpge 435 334 aload_0 335 getfield #88 <Field board.Field board[][]> 338 iload_3 339 aaload 340 iload 4 342 aaload 343 ldc #49 <String "vortex"> 345 invokevirtual #123 <Method void setFunction(java.lang.String)> 348 aload_1 349 iconst_3 350 invokevirtual #114 <Method int nextInt(int)> 353 istore 5 355 iload 5 357 tableswitch 0 to 2: default=570 0: 384 1: 401 2: 418 384 aload_0 385 getfield #88 <Field board.Field board[][]> 388 iload_3 389 aaload 390 iload 4 392 aaload 393 ldc #35 <String "left"> 395 invokevirtual #127 <Method void setVortexDirection(java.lang.String)> 398 goto 570 401 aload_0 402 getfield #88 <Field board.Field board[][]> 405 iload_3 406 aaload 407 iload 4 409 aaload 410 ldc #44 <String "right"> 412 invokevirtual #127 <Method void setVortexDirection(java.lang.String)> 415 goto 570 418 aload_0 419 getfield #88 <Field board.Field board[][]> 422 iload_3 423 aaload 424 iload 4 426 aaload 427 ldc #33 <String "flip"> 429 invokevirtual #127 <Method void setVortexDirection(java.lang.String)> 432 goto 570 435 iload 5 437 bipush 95 439 if_icmplt 570 442 aload_0 443 getfield #88 <Field board.Field board[][]> 446 iload_3 447 aaload 448 iload 4 450 aaload 451 ldc #48 <String "tunnel"> 453 invokevirtual #123 <Method void setFunction(java.lang.String)> 456 aload_1 457 iload_3 458 iconst_1 459 iadd 460 invokevirtual #114 <Method int nextInt(int)> 463 istore 6 465 aload_1 466 iload 4 468 iconst_1 469 iadd 470 invokevirtual #114 <Method int nextInt(int)> 473 istore 7 475 iload 6 477 iload_3 478 if_icmpne 491 481 iload 7 483 iload 4 485 if_icmpne 491 488 iinc 7 -1 491 aload_0 492 getfield #88 <Field board.Field board[][]> 495 iload 6 497 aaload 498 iload 7 500 aaload 501 invokevirtual #99 <Method java.lang.String getFunction()> 504 ldc #48 <String "tunnel"> 506 if_acmpeq 456 509 aload_0 510 getfield #88 <Field board.Field board[][]> 513 iload_3 514 aaload 515 iload 4 517 aaload 518 new #54 <Class board.Position> 521 dup 522 iload 6 524 iload 7 526 invokespecial #77 <Method board.Position(int,int)> 529 invokevirtual #126 <Method void setTunnelEnd(board.Position)> 532 aload_0 533 getfield #88 <Field board.Field board[][]> 536 iload 6 538 aaload 539 iload 7 541 aaload 542 ldc #48 <String "tunnel"> 544 invokevirtual #123 <Method void setFunction(java.lang.String)> 547 aload_0 548 getfield #88 <Field board.Field board[][]> 551 iload 6 553 aaload 554 iload 7 556 aaload 557 new #54 <Class board.Position> 560 dup 561 iload_3 562 iload 4 564 invokespecial #77 <Method board.Position(int,int)> 567 invokevirtual #126 <Method void setTunnelEnd(board.Position)> 570 iinc 4 1 573 iload 4 575 aload_0 576 getfield #107 <Field int height> 579 if_icmplt 19 582 iinc 3 1 585 iload_3 586 aload_0 587 getfield #133 <Field int width> 590 if_icmplt 13 593 aload_0 594 iconst_4 595 putfield #112 <Field int n_dest> 598 aload_0 599 aload_0 600 getfield #112 <Field int n_dest> 603 anewarray class #54 <Class board.Position> 606 putfield #94 <Field board.Position destinations[]> 609 iconst_0 610 istore 4 612 goto 718 615 aload_0 616 getfield #94 <Field board.Position destinations[]> 619 iload 4 621 new #54 <Class board.Position> 624 dup 625 invokespecial #72 <Method board.Position()> 628 aastore 629 aload_0 630 getfield #94 <Field board.Position destinations[]> 633 iload 4 635 aaload 636 aload_1 637 aload_0 638 getfield #133 <Field int width> 641 invokevirtual #114 <Method int nextInt(int)> 644 putfield #134 <Field int x> 647 aload_0 648 getfield #94 <Field board.Position destinations[]> 651 iload 4 653 aaload 654 aload_1 655 aload_0 656 getfield #107 <Field int height> 659 invokevirtual #114 <Method int nextInt(int)> 662 putfield #135 <Field int y> 665 aload_0 666 getfield #88 <Field board.Field board[][]> 669 aload_0 670 getfield #94 <Field board.Position destinations[]> 673 iload 4 675 aaload 676 getfield #134 <Field int x> 679 aaload 680 aload_0 681 getfield #94 <Field board.Position destinations[]> 684 iload 4 686 aaload 687 getfield #135 <Field int y> 690 aaload 691 invokevirtual #99 <Method java.lang.String getFunction()> 694 ldc #40 <String "normal"> 696 invokevirtual #95 <Method boolean equals(java.lang.Object)> 699 ifeq 629 702 getstatic #117 <Field java.io.PrintStream out> 705 aload_0 706 getfield #94 <Field board.Position destinations[]> 709 iload 4 711 aaload 712 invokevirtual #118 <Method void println(java.lang.Object)> 715 iinc 4 1 718 iload 4 720 aload_0 721 getfield #112 <Field int n_dest> 724 if_icmplt 615 727 aload_0 728 iconst_4 729 putfield #113 <Field int n_startpoints_> 732 aload_0 733 aload_0 734 getfield #113 <Field int n_startpoints_> 737 anewarray class #54 <Class board.Position> 740 putfield #129 <Field board.Position startpoints_[]> 743 iconst_0 744 istore 5 746 goto 852 749 aload_0 750 getfield #129 <Field board.Position startpoints_[]> 753 iload 5 755 new #54 <Class board.Position> 758 dup 759 invokespecial #72 <Method board.Position()> 762 aastore 763 aload_0 764 getfield #129 <Field board.Position startpoints_[]> 767 iload 5 769 aaload 770 aload_1 771 aload_0 772 getfield #133 <Field int width> 775 invokevirtual #114 <Method int nextInt(int)> 778 putfield #134 <Field int x> 781 aload_0 782 getfield #129 <Field board.Position startpoints_[]> 785 iload 5 787 aaload 788 aload_1 789 aload_0 790 getfield #107 <Field int height> 793 invokevirtual #114 <Method int nextInt(int)> 796 putfield #135 <Field int y> 799 aload_0 800 getfield #88 <Field board.Field board[][]> 803 aload_0 804 getfield #129 <Field board.Position startpoints_[]> 807 iload 5 809 aaload 810 getfield #134 <Field int x> 813 aaload 814 aload_0 815 getfield #129 <Field board.Position startpoints_[]> 818 iload 5 820 aaload 821 getfield #135 <Field int y> 824 aaload 825 invokevirtual #99 <Method java.lang.String getFunction()> 828 ldc #40 <String "normal"> 830 invokevirtual #95 <Method boolean equals(java.lang.Object)> 833 ifeq 763 836 getstatic #117 <Field java.io.PrintStream out> 839 aload_0 840 getfield #129 <Field board.Position startpoints_[]> 843 iload 5 845 aaload 846 invokevirtual #118 <Method void println(java.lang.Object)> 849 iinc 5 1 852 iload 5 854 aload_0 855 getfield #113 <Field int n_startpoints_> 858 if_icmplt 749 861 bipush 7 863 anewarray class #53 <Class board.Field> 866 astore 6 868 iconst_0 869 istore 7 871 goto 928 874 aload 6 876 iload 7 878 new #53 <Class board.Field> 881 dup 882 aload_0 883 getfield #93 <Field int depth> 886 invokespecial #76 <Method board.Field(int)> 889 aastore 890 iconst_0 891 istore 8 893 goto 916 896 aload 6 898 iload 7 900 aaload 901 iload 8 903 aload_1 904 sipush 256 907 invokevirtual #114 <Method int nextInt(int)> 910 invokevirtual #121 <Method void setComponent(int, int)> 913 iinc 8 1 916 iload 8 918 aload_0 919 getfield #93 <Field int depth> 922 if_icmplt 896 925 iinc 7 1 928 iload 7 930 bipush 7 932 if_icmplt 874 935 iconst_0 936 istore 8 938 goto 1059 941 iconst_0 942 istore 9 944 goto 1047 947 iconst_0 948 istore 10 950 goto 1035 953 aload 6 955 aload_0 956 aload_0 957 getfield #88 <Field board.Field board[][]> 960 iload 8 962 aaload 963 iload 9 965 aaload 966 invokevirtual #99 <Method java.lang.String getFunction()> 969 invokevirtual #84 <Method int actionToInt(java.lang.String)> 972 aaload 973 iload 10 975 invokevirtual #97 <Method int getComponent(int)> 978 istore 11 980 iload 11 982 aload_1 983 bipush 30 985 invokevirtual #114 <Method int nextInt(int)> 988 bipush 15 990 isub 991 iadd 992 istore 11 994 iload 11 996 ifge 1002 999 iconst_0 1000 istore 11 1002 iload 11 1004 sipush 255 1007 if_icmple 1015 1010 sipush 255 1013 istore 11 1015 aload_0 1016 getfield #88 <Field board.Field board[][]> 1019 iload 8 1021 aaload 1022 iload 9 1024 aaload 1025 iload 10 1027 iload 11 1029 invokevirtual #121 <Method void setComponent(int, int)> 1032 iinc 10 1 1035 iload 10 1037 aload_0 1038 getfield #93 <Field int depth> 1041 if_icmplt 953 1044 iinc 9 1 1047 iload 9 1049 aload_0 1050 getfield #107 <Field int height> 1053 if_icmplt 947 1056 iinc 8 1 1059 iload 8 1061 aload_0 1062 getfield #133 <Field int width> 1065 if_icmplt 941 1068 return Line numbers for method void randomit() line 141: 0 line 139: 7 line 154: 8 line 152: 9 line 149: 10 line 171: 13 line 169: 14 line 166: 16 line 186: 19 line 190: 20 line 189: 22 line 184: 25 line 193: 27 line 206: 30 line 210: 31 line 209: 33 line 204: 36 line 195: 38 line 196: 40 line 199: 43 line 201: 45 line 200: 47 line 216: 50 line 218: 52 line 217: 54 line 221: 57 line 223: 61 line 222: 62 line 226: 63 line 225: 65 line 232: 66 line 230: 68 line 214: 71 line 240: 74 line 242: 76 line 241: 78 line 244: 81 line 246: 83 line 245: 85 line 249: 88 line 251: 92 line 250: 93 line 254: 94 line 253: 96 line 260: 97 line 258: 99 line 238: 102 line 268: 105 line 270: 107 line 269: 109 line 272: 112 line 274: 114 line 273: 116 line 277: 119 line 279: 123 line 278: 124 line 282: 125 line 281: 127 line 288: 128 line 286: 130 line 266: 133 line 296: 136 line 298: 138 line 297: 140 line 300: 143 line 302: 145 line 301: 147 line 305: 150 line 307: 154 line 306: 155 line 310: 156 line 309: 158 line 316: 159 line 314: 161 line 320: 164 line 322: 168 line 321: 169 line 325: 170 line 324: 172 line 330: 173 line 334: 174 line 333: 175 line 337: 178 line 336: 179 line 329: 180 line 294: 183 line 344: 186 line 346: 188 line 345: 190 line 348: 193 line 350: 195 line 349: 197 line 353: 200 line 355: 204 line 354: 205 line 358: 206 line 357: 208 line 364: 209 line 362: 211 line 370: 214 line 374: 215 line 373: 216 line 368: 219 line 379: 221 line 377: 223 line 385: 252 line 387: 256 line 386: 257 line 390: 258 line 389: 260 line 396: 261 line 394: 263 line 400: 266 line 405: 269 line 407: 273 line 406: 274 line 410: 275 line 409: 277 line 416: 278 line 414: 280 line 420: 283 line 425: 286 line 427: 290 line 426: 291 line 430: 292 line 429: 294 line 436: 295 line 434: 297 line 440: 300 line 445: 303 line 447: 307 line 446: 308 line 450: 309 line 449: 311 line 456: 312 line 454: 314 line 460: 317 line 467: 320 line 469: 322 line 468: 324 line 471: 327 line 473: 329 line 472: 331 line 476: 334 line 478: 338 line 477: 339 line 481: 340 line 480: 342 line 487: 343 line 485: 345 line 493: 348 line 497: 349 line 496: 350 line 491: 353 line 502: 355 line 500: 357 line 508: 384 line 510: 388 line 509: 389 line 513: 390 line 512: 392 line 519: 393 line 517: 395 line 523: 398 line 528: 401 line 530: 405 line 529: 406 line 533: 407 line 532: 409 line 539: 410 line 537: 412 line 543: 415 line 548: 418 line 550: 422 line 549: 423 line 553: 424 line 552: 426 line 559: 427 line 557: 429 line 563: 432 line 570: 435 line 572: 437 line 571: 439 line 575: 442 line 577: 446 line 576: 447 line 580: 448 line 579: 450 line 586: 451 line 584: 453 line 599: 456 line 603: 457 line 605: 458 line 604: 459 line 602: 460 line 597: 463 line 610: 465 line 614: 466 line 616: 468 line 615: 469 line 613: 470 line 608: 473 line 621: 475 line 623: 477 line 622: 478 line 625: 481 line 627: 483 line 626: 485 line 630: 488 line 635: 491 line 637: 495 line 636: 497 line 640: 498 line 639: 500 line 644: 501 line 648: 504 line 646: 506 line 652: 509 line 654: 513 line 653: 514 line 657: 515 line 656: 517 line 662: 518 line 665: 522 line 667: 524 line 662: 526 line 661: 529 line 671: 532 line 673: 536 line 672: 538 line 676: 539 line 675: 541 line 682: 542 line 680: 544 line 686: 547 line 688: 551 line 687: 553 line 691: 554 line 690: 556 line 696: 557 line 699: 561 line 701: 562 line 696: 564 line 695: 567 line 180: 570 line 173: 573 line 175: 575 line 176: 576 line 174: 579 line 163: 582 line 156: 585 line 158: 586 line 159: 587 line 157: 590 line 708: 593 line 710: 594 line 708: 595 line 712: 598 line 717: 599 line 714: 603 line 712: 606 line 725: 609 line 723: 610 line 720: 612 line 735: 615 line 737: 619 line 740: 621 line 736: 628 line 747: 629 line 749: 633 line 748: 635 line 754: 636 line 758: 637 line 757: 641 line 751: 644 line 761: 647 line 763: 651 line 762: 653 line 768: 654 line 772: 655 line 771: 659 line 765: 662 line 779: 665 line 781: 669 line 783: 673 line 782: 675 line 785: 676 line 780: 679 line 789: 680 line 791: 684 line 790: 686 line 793: 687 line 788: 690 line 798: 691 line 804: 694 line 802: 696 line 810: 702 line 815: 705 line 817: 709 line 816: 711 line 814: 712 line 732: 715 line 727: 718 line 729: 720 line 728: 724 line 822: 727 line 824: 728 line 822: 729 line 826: 732 line 831: 733 line 828: 737 line 826: 740 line 839: 743 line 837: 744 line 834: 746 line 849: 749 line 851: 753 line 854: 755 line 850: 762 line 861: 763 line 863: 767 line 862: 769 line 868: 770 line 872: 771 line 871: 775 line 865: 778 line 875: 781 line 877: 785 line 876: 787 line 882: 788 line 886: 789 line 885: 793 line 879: 796 line 893: 799 line 895: 803 line 897: 807 line 896: 809 line 899: 810 line 894: 813 line 903: 814 line 905: 818 line 904: 820 line 907: 821 line 902: 824 line 912: 825 line 918: 828 line 916: 830 line 924: 836 line 929: 839 line 931: 843 line 930: 845 line 928: 846 line 846: 849 line 841: 852 line 843: 854 line 842: 858 line 944: 861 line 941: 863 line 939: 866 line 952: 868 line 950: 869 line 947: 871 line 962: 874 line 964: 876 line 967: 878 line 970: 882 line 971: 883 line 967: 886 line 963: 889 line 980: 890 line 978: 891 line 975: 893 line 992: 896 line 994: 898 line 993: 900 line 999: 901 line 1001: 903 line 1005: 904 line 1004: 907 line 998: 910 line 989: 913 line 982: 916 line 984: 918 line 985: 919 line 983: 922 line 959: 925 line 954: 928 line 956: 930 line 955: 932 line 1016: 935 line 1014: 936 line 1011: 938 line 1033: 941 line 1031: 942 line 1028: 944 line 1050: 947 line 1048: 948 line 1045: 950 line 1065: 953 line 1068: 955 line 1069: 956 line 1071: 960 line 1070: 962 line 1074: 963 line 1073: 965 line 1078: 966 line 1068: 969 line 1066: 972 line 1085: 973 line 1084: 975 line 1063: 978 line 1088: 980 line 1090: 982 line 1094: 983 line 1093: 985 line 1097: 988 line 1096: 990 line 1089: 991 line 1088: 992 line 1101: 994 line 1102: 996 line 1107: 999 line 1105: 1000 line 1111: 1002 line 1113: 1004 line 1112: 1007 line 1117: 1010 line 1115: 1013 line 1119: 1015 line 1121: 1019 line 1120: 1021 line 1124: 1022 line 1123: 1024 line 1129: 1025 line 1131: 1027 line 1128: 1029 line 1059: 1032 line 1052: 1035 line 1054: 1037 line 1055: 1038 line 1053: 1041 line 1042: 1044 line 1035: 1047 line 1037: 1049 line 1038: 1050 line 1036: 1053 line 1025: 1056 line 1018: 1059 line 1020: 1061 line 1021: 1062 line 1019: 1065 line 134: 1068 Method void save(java.lang.String) 0 new #59 <Class java.io.FileWriter> 3 dup 4 aload_1 5 invokespecial #81 <Method java.io.FileWriter(java.lang.String)> 8 astore_2 9 new #64 <Class java.io.PrintWriter> 12 dup 13 aload_2 14 invokespecial #79 <Method java.io.PrintWriter(java.io.Writer)> 17 astore_3 18 ldc #1 <String ""> 20 astore 4 22 new #68 <Class java.lang.StringBuffer> 25 dup 26 aload 4 28 invokestatic #132 <Method java.lang.String valueOf(java.lang.Object)> 31 invokespecial #83 <Method java.lang.StringBuffer(java.lang.String)> 34 ldc #26 <String "boardsize "> 36 invokevirtual #87 <Method java.lang.StringBuffer append(java.lang.String)> 39 aload_0 40 getfield #133 <Field int width> 43 invokevirtual #85 <Method java.lang.StringBuffer append(int)> 46 ldc #4 <String " "> 48 invokevirtual #87 <Method java.lang.StringBuffer append(java.lang.String)> 51 aload_0 52 getfield #107 <Field int height> 55 invokevirtual #85 <Method java.lang.StringBuffer append(int)> 58 ldc #4 <String " "> 60 invokevirtual #87 <Method java.lang.StringBuffer append(java.lang.String)> 63 aload_0 64 getfield #93 <Field int depth> 67 invokevirtual #85 <Method java.lang.StringBuffer append(int)> 70 invokevirtual #131 <Method java.lang.String toString()> 73 astore 4 75 aload_3 76 aload 4 78 invokevirtual #120 <Method void println(java.lang.String)> 81 ldc #1 <String ""> 83 astore 4 85 iconst_0 86 istore 5 88 goto 187 91 new #68 <Class java.lang.StringBuffer> 94 dup 95 aload 4 97 invokestatic #132 <Method java.lang.String valueOf(java.lang.Object)> 100 invokespecial #83 <Method java.lang.StringBuffer(java.lang.String)> 103 ldc #24 <String "board "> 105 invokevirtual #87 <Method java.lang.StringBuffer append(java.lang.String)> 108 iload 5 110 invokevirtual #85 <Method java.lang.StringBuffer append(int)> 113 ldc #4 <String " "> 115 invokevirtual #87 <Method java.lang.StringBuffer append(java.lang.String)> 118 invokevirtual #131 <Method java.lang.String toString()> 121 astore 4 123 iconst_0 124 istore 6 126 goto 165 129 new #68 <Class java.lang.StringBuffer> 132 dup 133 aload 4 135 invokestatic #132 <Method java.lang.String valueOf(java.lang.Object)> 138 invokespecial #83 <Method java.lang.StringBuffer(java.lang.String)> 141 aload_0 142 iload 6 144 iload 5 146 invokevirtual #98 <Method board.Field getField(int, int)> 149 invokevirtual #86 <Method java.lang.StringBuffer append(java.lang.Object)> 152 ldc #4 <String " "> 154 invokevirtual #87 <Method java.lang.StringBuffer append(java.lang.String)> 157 invokevirtual #131 <Method java.lang.String toString()> 160 astore 4 162 iinc 6 1 165 iload 6 167 aload_0 168 invokevirtual #105 <Method int getWidth()> 171 if_icmplt 129 174 aload_3 175 aload 4 177 invokevirtual #120 <Method void println(java.lang.String)> 180 ldc #1 <String ""> 182 astore 4 184 iinc 5 1 187 iload 5 189 aload_0 190 invokevirtual #101 <Method int getHeight()> 193 if_icmplt 91 196 aload_3 197 new #68 <Class java.lang.StringBuffer> 200 dup 201 ldc #39 <String "ndest "> 203 invokespecial #83 <Method java.lang.StringBuffer(java.lang.String)> 206 aload_0 207 getfield #112 <Field int n_dest> 210 invokevirtual #85 <Method java.lang.StringBuffer append(int)> 213 invokevirtual #131 <Method java.lang.String toString()> 216 invokevirtual #120 <Method void println(java.lang.String)> 219 iconst_0 220 istore 6 222 goto 301 225 ldc #1 <String ""> 227 astore 4 229 new #68 <Class java.lang.StringBuffer> 232 dup 233 aload 4 235 invokestatic #132 <Method java.lang.String valueOf(java.lang.Object)> 238 invokespecial #83 <Method java.lang.StringBuffer(java.lang.String)> 241 ldc #28 <String "destination "> 243 invokevirtual #87 <Method java.lang.StringBuffer append(java.lang.String)> 246 iload 6 248 invokevirtual #85 <Method java.lang.StringBuffer append(int)> 251 ldc #4 <String " "> 253 invokevirtual #87 <Method java.lang.StringBuffer append(java.lang.String)> 256 aload_0 257 getfield #94 <Field board.Position destinations[]> 260 iload 6 262 aaload 263 getfield #134 <Field int x> 266 invokevirtual #85 <Method java.lang.StringBuffer append(int)> 269 ldc #4 <String " "> 271 invokevirtual #87 <Method java.lang.StringBuffer append(java.lang.String)> 274 aload_0 275 getfield #94 <Field board.Position destinations[]> 278 iload 6 280 aaload 281 getfield #135 <Field int y> 284 invokevirtual #85 <Method java.lang.StringBuffer append(int)> 287 invokevirtual #131 <Method java.lang.String toString()> 290 astore 4 292 aload_3 293 aload 4 295 invokevirtual #120 <Method void println(java.lang.String)> 298 iinc 6 1 301 iload 6 303 aload_0 304 getfield #112 <Field int n_dest> 307 if_icmplt 225 310 aload_3 311 new #68 <Class java.lang.StringBuffer> 314 dup 315 ldc #43 <String "nstartpoints "> 317 invokespecial #83 <Method java.lang.StringBuffer(java.lang.String)> 320 aload_0 321 getfield #113 <Field int n_startpoints_> 324 invokevirtual #85 <Method java.lang.StringBuffer append(int)> 327 invokevirtual #131 <Method java.lang.String toString()> 330 invokevirtual #120 <Method void println(java.lang.String)> 333 iconst_0 334 istore 7 336 goto 415 339 ldc #1 <String ""> 341 astore 4 343 new #68 <Class java.lang.StringBuffer> 346 dup 347 aload 4 349 invokestatic #132 <Method java.lang.String valueOf(java.lang.Object)> 352 invokespecial #83 <Method java.lang.StringBuffer(java.lang.String)> 355 ldc #47 <String "startpoint "> 357 invokevirtual #87 <Method java.lang.StringBuffer append(java.lang.String)> 360 iload 7 362 invokevirtual #85 <Method java.lang.StringBuffer append(int)> 365 ldc #4 <String " "> 367 invokevirtual #87 <Method java.lang.StringBuffer append(java.lang.String)> 370 aload_0 371 getfield #129 <Field board.Position startpoints_[]> 374 iload 7 376 aaload 377 getfield #134 <Field int x> 380 invokevirtual #85 <Method java.lang.StringBuffer append(int)> 383 ldc #4 <String " "> 385 invokevirtual #87 <Method java.lang.StringBuffer append(java.lang.String)> 388 aload_0 389 getfield #129 <Field board.Position startpoints_[]> 392 iload 7 394 aaload 395 getfield #135 <Field int y> 398 invokevirtual #85 <Method java.lang.StringBuffer append(int)> 401 invokevirtual #131 <Method java.lang.String toString()> 404 astore 4 406 aload_3 407 aload 4 409 invokevirtual #120 <Method void println(java.lang.String)> 412 iinc 7 1 415 iload 7 417 aload_0 418 getfield #113 <Field int n_startpoints_> 421 if_icmplt 339 424 ldc #1 <String ""> 426 astore 4 428 iconst_0 429 istore 9 431 goto 762 434 iconst_0 435 istore 10 437 goto 750 440 aload_0 441 getfield #88 <Field board.Field board[][]> 444 iload 9 446 aaload 447 iload 10 449 aaload 450 astore 8 452 ldc #31 <String "field"> 454 astore 4 456 new #68 <Class java.lang.StringBuffer> 459 dup 460 aload 4 462 invokestatic #132 <Method java.lang.String valueOf(java.lang.Object)> 465 invokespecial #83 <Method java.lang.StringBuffer(java.lang.String)> 468 ldc #4 <String " "> 470 invokevirtual #87 <Method java.lang.StringBuffer append(java.lang.String)> 473 iload 9 475 invokevirtual #85 <Method java.lang.StringBuffer append(int)> 478 ldc #4 <String " "> 480 invokevirtual #87 <Method java.lang.StringBuffer append(java.lang.String)> 483 iload 10 485 invokevirtual #85 <Method java.lang.StringBuffer append(int)> 488 ldc #4 <String " "> 490 invokevirtual #87 <Method java.lang.StringBuffer append(java.lang.String)> 493 aload 8 495 invokevirtual #99 <Method java.lang.String getFunction()> 498 invokevirtual #87 <Method java.lang.StringBuffer append(java.lang.String)> 501 ldc #4 <String " "> 503 invokevirtual #87 <Method java.lang.StringBuffer append(java.lang.String)> 506 invokevirtual #131 <Method java.lang.String toString()> 509 astore 4 511 aload 8 513 invokevirtual #99 <Method java.lang.String getFunction()> 516 ldc #48 <String "tunnel"> 518 invokevirtual #95 <Method boolean equals(java.lang.Object)> 521 ifeq 571 524 new #68 <Class java.lang.StringBuffer> 527 dup 528 aload 4 530 invokestatic #132 <Method java.lang.String valueOf(java.lang.Object)> 533 invokespecial #83 <Method java.lang.StringBuffer(java.lang.String)> 536 aload 8 538 invokevirtual #103 <Method board.Position getTunnelEnd()> 541 getfield #134 <Field int x> 544 invokevirtual #85 <Method java.lang.StringBuffer append(int)> 547 ldc #4 <String " "> 549 invokevirtual #87 <Method java.lang.StringBuffer append(java.lang.String)> 552 aload 8 554 invokevirtual #103 <Method board.Position getTunnelEnd()> 557 getfield #135 <Field int y> 560 invokevirtual #85 <Method java.lang.StringBuffer append(int)> 563 invokevirtual #131 <Method java.lang.String toString()> 566 astore 4 568 goto 741 571 aload 8 573 invokevirtual #99 <Method java.lang.String getFunction()> 576 ldc #49 <String "vortex"> 578 invokevirtual #95 <Method boolean equals(java.lang.Object)> 581 ifeq 612 584 new #68 <Class java.lang.StringBuffer> 587 dup 588 aload 4 590 invokestatic #132 <Method java.lang.String valueOf(java.lang.Object)> 593 invokespecial #83 <Method java.lang.StringBuffer(java.lang.String)> 596 aload 8 598 invokevirtual #104 <Method java.lang.String getVortexDirection()> 601 invokevirtual #87 <Method java.lang.StringBuffer append(java.lang.String)> 604 invokevirtual #131 <Method java.lang.String toString()> 607 astore 4 609 goto 741 612 aload 8 614 invokevirtual #99 <Method java.lang.String getFunction()> 617 ldc #34 <String "glacier"> 619 invokevirtual #95 <Method boolean equals(java.lang.Object)> 622 ifeq 653 625 new #68 <Class java.lang.StringBuffer> 628 dup 629 aload 4 631 invokestatic #132 <Method java.lang.String valueOf(java.lang.Object)> 634 invokespecial #83 <Method java.lang.StringBuffer(java.lang.String)> 637 aload 8 639 invokevirtual #100 <Method java.lang.String getGlacierDirection()> 642 invokevirtual #87 <Method java.lang.StringBuffer append(java.lang.String)> 645 invokevirtual #131 <Method java.lang.String toString()> 648 astore 4 650 goto 741 653 aload 8 655 invokevirtual #99 <Method java.lang.String getFunction()> 658 ldc #36 <String "marsh"> 660 invokevirtual #95 <Method boolean equals(java.lang.Object)> 663 ifeq 694 666 new #68 <Class java.lang.StringBuffer> 669 dup 670 aload 4 672 invokestatic #132 <Method java.lang.String valueOf(java.lang.Object)> 675 invokespecial #83 <Method java.lang.StringBuffer(java.lang.String)> 678 aload 8 680 invokevirtual #102 <Method int getMarshDepth()> 683 invokevirtual #85 <Method java.lang.StringBuffer append(int)> 686 invokevirtual #131 <Method java.lang.String toString()> 689 astore 4 691 goto 741 694 aload 8 696 invokevirtual #99 <Method java.lang.String getFunction()> 699 ldc #37 <String "mountain"> 701 invokevirtual #95 <Method boolean equals(java.lang.Object)> 704 ifne 741 707 aload 8 709 invokevirtual #99 <Method java.lang.String getFunction()> 712 ldc #22 <String "alien"> 714 invokevirtual #95 <Method boolean equals(java.lang.Object)> 717 ifne 741 720 aload 8 722 invokevirtual #99 <Method java.lang.String getFunction()> 725 ldc #40 <String "normal"> 727 invokevirtual #95 <Method boolean equals(java.lang.Object)> 730 ifne 741 733 getstatic #117 <Field java.io.PrintStream out> 736 ldc #21 <String "Strange field reached while saving board"> 738 invokevirtual #119 <Method void println(java.lang.String)> 741 aload_3 742 aload 4 744 invokevirtual #120 <Method void println(java.lang.String)> 747 iinc 10 1 750 iload 10 752 aload_0 753 invokevirtual #101 <Method int getHeight()> 756 if_icmplt 440 759 iinc 9 1 762 iload 9 764 aload_0 765 invokevirtual #105 <Method int getWidth()> 768 if_icmplt 434 771 aload_3 772 ldc #32 <String "fileend"> 774 invokevirtual #120 <Method void println(java.lang.String)> 777 aload_3 778 invokevirtual #92 <Method void close()> 781 aload_2 782 invokevirtual #91 <Method void close()> 785 goto 820 788 astore_2 789 getstatic #117 <Field java.io.PrintStream out> 792 new #68 <Class java.lang.StringBuffer> 795 dup 796 ldc #11 <String "ERROR in writing a board to '"> 798 invokespecial #83 <Method java.lang.StringBuffer(java.lang.String)> 801 aload_1 802 invokevirtual #87 <Method java.lang.StringBuffer append(java.lang.String)> 805 ldc #7 <String "': "> 807 invokevirtual #87 <Method java.lang.StringBuffer append(java.lang.String)> 810 aload_2 811 invokevirtual #86 <Method java.lang.StringBuffer append(java.lang.Object)> 814 invokevirtual #131 <Method java.lang.String toString()> 817 invokevirtual #119 <Method void println(java.lang.String)> 820 return Exception table: from to target type 0 785 788 <Class java.lang.Exception> Line numbers for method void save(java.lang.String) line 3270: 0 line 3275: 0 line 3278: 4 line 3275: 5 line 3273: 8 line 3284: 9 line 3287: 13 line 3284: 14 line 3282: 17 line 3293: 18 line 3291: 20 line 3296: 22 line 3295: 26 line 3296: 31 line 3300: 34 line 3305: 39 line 3306: 40 line 3310: 46 line 3313: 51 line 3314: 52 line 3318: 58 line 3321: 63 line 3322: 64 line 3296: 70 line 3295: 73 line 3325: 75 line 3329: 76 line 3328: 78 line 3334: 81 line 3332: 83 line 3341: 85 line 3339: 86 line 3336: 88 line 3356: 91 line 3355: 95 line 3356: 100 line 3360: 103 line 3365: 108 line 3368: 113 line 3356: 118 line 3355: 121 line 3376: 123 line 3374: 124 line 3371: 126 line 3391: 129 line 3390: 133 line 3391: 138 line 3392: 141 line 3396: 142 line 3398: 144 line 3395: 146 line 3401: 152 line 3391: 157 line 3390: 160 line 3387: 162 line 3378: 165 line 3380: 167 line 3383: 168 line 3379: 171 line 3404: 174 line 3408: 175 line 3407: 177 line 3413: 180 line 3411: 182 line 3352: 184 line 3343: 187 line 3345: 189 line 3348: 190 line 3344: 193 line 3416: 196 line 3423: 197 line 3428: 206 line 3429: 207 line 3427: 213 line 3419: 216 line 3438: 219 line 3436: 220 line 3433: 222 line 3452: 225 line 3450: 227 line 3455: 229 line 3454: 233 line 3455: 238 line 3459: 241 line 3464: 246 line 3467: 251 line 3470: 256 line 3472: 260 line 3471: 262 line 3474: 263 line 3478: 269 line 3481: 274 line 3483: 278 line 3482: 280 line 3485: 281 line 3455: 287 line 3454: 290 line 3488: 292 line 3492: 293 line 3491: 295 line 3447: 298 line 3440: 301 line 3442: 303 line 3443: 304 line 3441: 307 line 3496: 310 line 3503: 311 line 3508: 320 line 3509: 321 line 3507: 327 line 3499: 330 line 3518: 333 line 3516: 334 line 3513: 336 line 3532: 339 line 3530: 341 line 3535: 343 line 3534: 347 line 3535: 352 line 3539: 355 line 3544: 360 line 3547: 365 line 3550: 370 line 3552: 374 line 3551: 376 line 3554: 377 line 3558: 383 line 3561: 388 line 3563: 392 line 3562: 394 line 3565: 395 line 3535: 401 line 3534: 404 line 3568: 406 line 3572: 407 line 3571: 409 line 3527: 412 line 3520: 415 line 3522: 417 line 3523: 418 line 3521: 421 line 3578: 424 line 3576: 426 line 3588: 428 line 3586: 429 line 3583: 431 line 3607: 434 line 3605: 435 line 3602: 437 line 3623: 440 line 3625: 444 line 3624: 446 line 3628: 447 line 3627: 449 line 3621: 450 line 3634: 452 line 3631: 454 line 3638: 456 line 3637: 460 line 3638: 465 line 3640: 468 line 3643: 473 line 3646: 478 line 3649: 483 line 3652: 488 line 3655: 493 line 3658: 495 line 3662: 501 line 3638: 506 line 3637: 509 line 3667: 511 line 3670: 513 line 3676: 516 line 3674: 518 line 3682: 524 line 3681: 528 line 3682: 533 line 3683: 536 line 3686: 538 line 3688: 541 line 3692: 547 line 3695: 552 line 3698: 554 line 3700: 557 line 3682: 563 line 3681: 566 line 3665: 568 line 3707: 571 line 3710: 573 line 3716: 576 line 3714: 578 line 3722: 584 line 3721: 588 line 3722: 593 line 3723: 596 line 3726: 598 line 3722: 604 line 3721: 607 line 3705: 609 line 3733: 612 line 3736: 614 line 3742: 617 line 3740: 619 line 3748: 625 line 3747: 629 line 3748: 634 line 3749: 637 line 3752: 639 line 3748: 645 line 3747: 648 line 3731: 650 line 3759: 653 line 3762: 655 line 3768: 658 line 3766: 660 line 3774: 666 line 3773: 670 line 3774: 675 line 3775: 678 line 3778: 680 line 3774: 686 line 3773: 689 line 3757: 691 line 3785: 694 line 3788: 696 line 3794: 699 line 3792: 701 line 3803: 707 line 3806: 709 line 3812: 712 line 3810: 714 line 3821: 720 line 3824: 722 line 3830: 725 line 3828: 727 line 3839: 733 line 3844: 736 line 3843: 738 line 3848: 741 line 3852: 742 line 3851: 744 line 3618: 747 line 3609: 750 line 3611: 752 line 3614: 753 line 3610: 756 line 3599: 759 line 3590: 762 line 3592: 764 line 3595: 765 line 3591: 768 line 3857: 771 line 3862: 772 line 3860: 774 line 3866: 777 line 3869: 778 line 3872: 781 line 3875: 782 line 3270: 785 line 3879: 788 line 3886: 789 line 3891: 792 line 3893: 801 line 3895: 805 line 3897: 810 line 3896: 814 line 3890: 817 line 3264: 820 Method void setDest(int, int, int) 0 aload_0 1 getfield #94 <Field board.Position destinations[]> 4 iload_1 5 new #54 <Class board.Position> 8 dup 9 iload_2 10 iload_3 11 invokespecial #77 <Method board.Position(int,int)> 14 aastore 15 return Line numbers for method void setDest(int, int, int) line 1748: 0 line 1750: 4 line 1753: 5 line 1756: 9 line 1758: 10 line 1753: 11 line 1749: 14 line 1736: 15 Method void setDest(int, board.Position) 0 aload_0 1 getfield #94 <Field board.Position destinations[]> 4 iload_1 5 aload_2 6 aastore 7 return Line numbers for method void setDest(int, board.Position) line 1726: 0 line 1728: 4 line 1731: 5 line 1727: 6 line 1717: 7 Method void setField(int, int, board.Field) 0 aload_0 1 getfield #88 <Field board.Field board[][]> 4 iload_1 5 aaload 6 iload_2 7 aload_3 8 aastore 9 return Line numbers for method void setField(int, int, board.Field) line 2053: 0 line 2055: 4 line 2054: 5 line 2058: 6 line 2061: 7 line 2057: 8 line 2041: 9 Method void setNDest(int) 0 aload_0 1 iload_1 2 putfield #112 <Field int n_dest> 5 aload_0 6 aload_0 7 getfield #112 <Field int n_dest> 10 anewarray class #54 <Class board.Position> 13 putfield #94 <Field board.Position destinations[]> 16 iconst_0 17 istore_2 18 goto 37 21 aload_0 22 getfield #94 <Field board.Position destinations[]> 25 iload_2 26 new #54 <Class board.Position> 29 dup 30 invokespecial #72 <Method board.Position()> 33 aastore 34 iinc 2 1 37 iload_2 38 aload_0 39 getfield #112 <Field int n_dest> 42 if_icmplt 21 45 return Line numbers for method void setNDest(int) line 1657: 0 line 1661: 1 line 1658: 2 line 1663: 5 line 1668: 6 line 1669: 7 line 1665: 10 line 1663: 13 line 1678: 16 line 1676: 17 line 1673: 18 line 1688: 21 line 1690: 25 line 1693: 26 line 1689: 33 line 1685: 34 line 1680: 37 line 1682: 38 line 1681: 42 line 1651: 45 Method void setNStartPoints(int) 0 aload_0 1 iload_1 2 putfield #113 <Field int n_startpoints_> 5 aload_0 6 iload_1 7 anewarray class #54 <Class board.Position> 10 putfield #129 <Field board.Position startpoints_[]> 13 return Line numbers for method void setNStartPoints(int) line 1770: 0 line 1772: 1 line 1770: 2 line 1774: 5 line 1779: 6 line 1776: 7 line 1774: 10 line 1764: 13 Method void setStartPoint(int, board.Position) 0 aload_0 1 getfield #129 <Field board.Position startpoints_[]> 4 iload_1 5 aload_2 6 aastore 7 return Line numbers for method void setStartPoint(int, board.Position) line 1819: 0 line 1821: 4 line 1824: 5 line 1820: 6 line 1810: 7 Method int spinToInt(java.lang.String) 0 iconst_0 1 istore_2 2 goto 22 5 aload_1 6 aload_0 7 iload_2 8 invokevirtual #110 <Method java.lang.String intToSpin(int)> 11 invokevirtual #95 <Method boolean equals(java.lang.Object)> 14 ifeq 19 17 iload_2 18 ireturn 19 iinc 2 1 22 iload_2 23 iconst_3 24 if_icmplt 5 27 getstatic #117 <Field java.io.PrintStream out> 30 ldc #16 <String "Error in spinToInt"> 32 invokevirtual #119 <Method void println(java.lang.String)> 35 iconst_0 36 ireturn Line numbers for method int spinToInt(java.lang.String) line 1469: 0 line 1467: 1 line 1464: 2 line 1481: 5 line 1486: 6 line 1487: 7 line 1486: 8 line 1484: 11 line 1492: 17 line 1491: 18 line 1475: 19 line 1471: 22 line 1473: 23 line 1472: 24 line 1496: 27 line 1501: 30 line 1500: 32 line 1505: 35 line 1504: 36 Method java.lang.String toString() 0 ldc #1 <String ""> 2 astore_1 3 iconst_0 4 istore_2 5 goto 102 8 new #68 <Class java.lang.StringBuffer> 11 dup 12 aload_1 13 invokestatic #132 <Method java.lang.String valueOf(java.lang.Object)> 16 invokespecial #83 <Method java.lang.StringBuffer(java.lang.String)> 19 iload_2 20 invokevirtual #85 <Method java.lang.StringBuffer append(int)> 23 ldc #8 <String ": "> 25 invokevirtual #87 <Method java.lang.StringBuffer append(java.lang.String)> 28 invokevirtual #131 <Method java.lang.String toString()> 31 astore_1 32 iconst_0 33 istore_3 34 goto 71 37 new #68 <Class java.lang.StringBuffer> 40 dup 41 aload_1 42 invokestatic #132 <Method java.lang.String valueOf(java.lang.Object)> 45 invokespecial #83 <Method java.lang.StringBuffer(java.lang.String)> 48 aload_0 49 getfield #88 <Field board.Field board[][]> 52 iload_3 53 aaload 54 iload_2 55 aaload 56 invokevirtual #86 <Method java.lang.StringBuffer append(java.lang.Object)> 59 ldc #4 <String " "> 61 invokevirtual #87 <Method java.lang.StringBuffer append(java.lang.String)> 64 invokevirtual #131 <Method java.lang.String toString()> 67 astore_1 68 iinc 3 1 71 iload_3 72 aload_0 73 getfield #133 <Field int width> 76 if_icmplt 37 79 new #68 <Class java.lang.StringBuffer> 82 dup 83 aload_1 84 invokestatic #132 <Method java.lang.String valueOf(java.lang.Object)> 87 invokespecial #83 <Method java.lang.StringBuffer(java.lang.String)> 90 ldc #3 <String " "> 92 invokevirtual #87 <Method java.lang.StringBuffer append(java.lang.String)> 95 invokevirtual #131 <Method java.lang.String toString()> 98 astore_1 99 iinc 2 1 102 iload_2 103 aload_0 104 getfield #107 <Field int height> 107 if_icmplt 8 110 iconst_0 111 istore_3 112 goto 211 115 new #68 <Class java.lang.StringBuffer> 118 dup 119 aload_1 120 invokestatic #132 <Method java.lang.String valueOf(java.lang.Object)> 123 invokespecial #83 <Method java.lang.StringBuffer(java.lang.String)> 126 ldc #9 <String "Dest "> 128 invokevirtual #87 <Method java.lang.StringBuffer append(java.lang.String)> 131 invokevirtual #131 <Method java.lang.String toString()> 134 astore_1 135 new #68 <Class java.lang.StringBuffer> 138 dup 139 aload_1 140 invokestatic #132 <Method java.lang.String valueOf(java.lang.Object)> 143 invokespecial #83 <Method java.lang.StringBuffer(java.lang.String)> 146 iload_3 147 invokevirtual #85 <Method java.lang.StringBuffer append(int)> 150 invokevirtual #131 <Method java.lang.String toString()> 153 astore_1 154 new #68 <Class java.lang.StringBuffer> 157 dup 158 aload_1 159 invokestatic #132 <Method java.lang.String valueOf(java.lang.Object)> 162 invokespecial #83 <Method java.lang.StringBuffer(java.lang.String)> 165 ldc #4 <String " "> 167 invokevirtual #87 <Method java.lang.StringBuffer append(java.lang.String)> 170 aload_0 171 getfield #94 <Field board.Position destinations[]> 174 iload_3 175 aaload 176 getfield #134 <Field int x> 179 invokevirtual #85 <Method java.lang.StringBuffer append(int)> 182 ldc #4 <String " "> 184 invokevirtual #87 <Method java.lang.StringBuffer append(java.lang.String)> 187 aload_0 188 getfield #94 <Field board.Position destinations[]> 191 iload_3 192 aaload 193 getfield #135 <Field int y> 196 invokevirtual #85 <Method java.lang.StringBuffer append(int)> 199 ldc #3 <String " "> 201 invokevirtual #87 <Method java.lang.StringBuffer append(java.lang.String)> 204 invokevirtual #131 <Method java.lang.String toString()> 207 astore_1 208 iinc 3 1 211 iload_3 212 aload_0 213 getfield #112 <Field int n_dest> 216 if_icmplt 115 219 iconst_0 220 istore 4 222 goto 324 225 new #68 <Class java.lang.StringBuffer> 228 dup 229 aload_1 230 invokestatic #132 <Method java.lang.String valueOf(java.lang.Object)> 233 invokespecial #83 <Method java.lang.StringBuffer(java.lang.String)> 236 ldc #20 <String "Start "> 238 invokevirtual #87 <Method java.lang.StringBuffer append(java.lang.String)> 241 invokevirtual #131 <Method java.lang.String toString()> 244 astore_1 245 new #68 <Class java.lang.StringBuffer> 248 dup 249 aload_1 250 invokestatic #132 <Method java.lang.String valueOf(java.lang.Object)> 253 invokespecial #83 <Method java.lang.StringBuffer(java.lang.String)> 256 iload 4 258 invokevirtual #85 <Method java.lang.StringBuffer append(int)> 261 invokevirtual #131 <Method java.lang.String toString()> 264 astore_1 265 new #68 <Class java.lang.StringBuffer> 268 dup 269 aload_1 270 invokestatic #132 <Method java.lang.String valueOf(java.lang.Object)> 273 invokespecial #83 <Method java.lang.StringBuffer(java.lang.String)> 276 ldc #4 <String " "> 278 invokevirtual #87 <Method java.lang.StringBuffer append(java.lang.String)> 281 aload_0 282 getfield #129 <Field board.Position startpoints_[]> 285 iload 4 287 aaload 288 getfield #134 <Field int x> 291 invokevirtual #85 <Method java.lang.StringBuffer append(int)> 294 ldc #4 <String " "> 296 invokevirtual #87 <Method java.lang.StringBuffer append(java.lang.String)> 299 aload_0 300 getfield #129 <Field board.Position startpoints_[]> 303 iload 4 305 aaload 306 getfield #135 <Field int y> 309 invokevirtual #85 <Method java.lang.StringBuffer append(int)> 312 ldc #3 <String " "> 314 invokevirtual #87 <Method java.lang.StringBuffer append(java.lang.String)> 317 invokevirtual #131 <Method java.lang.String toString()> 320 astore_1 321 iinc 4 1 324 iload 4 326 aload_0 327 getfield #113 <Field int n_startpoints_> 330 if_icmplt 225 333 aload_1 334 areturn Line numbers for method java.lang.String toString() line 1836: 0 line 1834: 2 line 1843: 3 line 1841: 4 line 1838: 5 line 1854: 8 line 1853: 12 line 1854: 16 line 1855: 19 line 1857: 23 line 1854: 28 line 1853: 31 line 1864: 32 line 1862: 33 line 1859: 34 line 1875: 37 line 1874: 41 line 1875: 45 line 1876: 48 line 1878: 52 line 1877: 53 line 1881: 54 line 1880: 55 line 1884: 59 line 1875: 64 line 1874: 67 line 1871: 68 line 1866: 71 line 1868: 72 line 1867: 76 line 1888: 79 line 1887: 83 line 1888: 87 line 1889: 90 line 1888: 95 line 1887: 98 line 1850: 99 line 1845: 102 line 1847: 103 line 1846: 107 line 1897: 110 line 1895: 111 line 1892: 112 line 1908: 115 line 1907: 119 line 1908: 123 line 1909: 126 line 1908: 131 line 1907: 134 line 1912: 135 line 1911: 139 line 1912: 143 line 1913: 146 line 1912: 150 line 1911: 153 line 1916: 154 line 1915: 158 line 1916: 162 line 1917: 165 line 1919: 170 line 1921: 174 line 1920: 175 line 1923: 176 line 1926: 182 line 1928: 187 line 1930: 191 line 1929: 192 line 1932: 193 line 1935: 199 line 1916: 204 line 1915: 207 line 1904: 208 line 1899: 211 line 1901: 212 line 1900: 216 line 1943: 219 line 1941: 220 line 1938: 222 line 1954: 225 line 1953: 229 line 1954: 233 line 1955: 236 line 1954: 241 line 1953: 244 line 1958: 245 line 1957: 249 line 1958: 253 line 1959: 256 line 1958: 261 line 1957: 264 line 1962: 265 line 1961: 269 line 1962: 273 line 1963: 276 line 1965: 281 line 1967: 285 line 1966: 287 line 1969: 288 line 1972: 294 line 1974: 299 line 1976: 303 line 1975: 305 line 1978: 306 line 1981: 312 line 1962: 317 line 1961: 320 line 1950: 321 line 1945: 324 line 1947: 326 line 1946: 330 line 1985: 333 line 1984: 334