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