blob: e323e7807e63e9b283bf5eff6c1b00dd72be1601 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
|
/* */ package NET.worlds.scape;
/* */
/* */ import java.io.PrintStream;
/* */ import java.util.Hashtable;
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */ class WorldScriptLoader
/* */ extends ClassLoader
/* */ {
/* 19 */ Hashtable<String, Class<?>> cache = new Hashtable();
/* */ String lastWorldName;
/* */
/* */ /* Error */
/* */ private byte[] loadClassData(String name)
/* */ {
/* */ // Byte code:
/* */ // 0: ldc 27
/* */ // 2: astore_2
/* */ // 3: aload_1
/* */ // 4: aload_2
/* */ // 5: invokevirtual 29 java/lang/String:startsWith (Ljava/lang/String;)Z
/* */ // 8: ifeq +12 -> 20
/* */ // 11: aload_1
/* */ // 12: aload_2
/* */ // 13: invokevirtual 35 java/lang/String:length ()I
/* */ // 16: invokevirtual 39 java/lang/String:substring (I)Ljava/lang/String;
/* */ // 19: astore_1
/* */ // 20: aload_1
/* */ // 21: ldc 43
/* */ // 23: invokevirtual 45 java/lang/String:indexOf (Ljava/lang/String;)I
/* */ // 26: istore_3
/* */ // 27: iload_3
/* */ // 28: iconst_m1
/* */ // 29: if_icmpne +8 -> 37
/* */ // 32: iconst_0
/* */ // 33: istore_3
/* */ // 34: goto +18 -> 52
/* */ // 37: iload_3
/* */ // 38: new 30 java/lang/String
/* */ // 41: dup
/* */ // 42: ldc 43
/* */ // 44: invokespecial 49 java/lang/String:<init> (Ljava/lang/String;)V
/* */ // 47: invokevirtual 35 java/lang/String:length ()I
/* */ // 50: iadd
/* */ // 51: istore_3
/* */ // 52: aload_1
/* */ // 53: ldc 52
/* */ // 55: invokevirtual 45 java/lang/String:indexOf (Ljava/lang/String;)I
/* */ // 58: istore 4
/* */ // 60: iload_3
/* */ // 61: ifne +10 -> 71
/* */ // 64: aload_0
/* */ // 65: getfield 54 NET/worlds/scape/WorldScriptLoader:lastWorldName Ljava/lang/String;
/* */ // 68: ifnonnull +51 -> 119
/* */ // 71: iload 4
/* */ // 73: iconst_m1
/* */ // 74: if_icmpeq +15 -> 89
/* */ // 77: aload_1
/* */ // 78: iload_3
/* */ // 79: iload 4
/* */ // 81: invokevirtual 56 java/lang/String:substring (II)Ljava/lang/String;
/* */ // 84: astore 5
/* */ // 86: goto +68 -> 154
/* */ // 89: aload_1
/* */ // 90: iload_3
/* */ // 91: invokevirtual 39 java/lang/String:substring (I)Ljava/lang/String;
/* */ // 94: astore 5
/* */ // 96: new 59 java/lang/StringBuilder
/* */ // 99: dup
/* */ // 100: aload_1
/* */ // 101: invokestatic 61 java/lang/String:valueOf (Ljava/lang/Object;)Ljava/lang/String;
/* */ // 104: invokespecial 65 java/lang/StringBuilder:<init> (Ljava/lang/String;)V
/* */ // 107: ldc 52
/* */ // 109: invokevirtual 66 java/lang/StringBuilder:append (Ljava/lang/String;)Ljava/lang/StringBuilder;
/* */ // 112: invokevirtual 70 java/lang/StringBuilder:toString ()Ljava/lang/String;
/* */ // 115: astore_1
/* */ // 116: goto +38 -> 154
/* */ // 119: aload_0
/* */ // 120: getfield 54 NET/worlds/scape/WorldScriptLoader:lastWorldName Ljava/lang/String;
/* */ // 123: astore 5
/* */ // 125: aload_1
/* */ // 126: ldc 52
/* */ // 128: invokevirtual 74 java/lang/String:endsWith (Ljava/lang/String;)Z
/* */ // 131: ifne +23 -> 154
/* */ // 134: new 59 java/lang/StringBuilder
/* */ // 137: dup
/* */ // 138: aload_1
/* */ // 139: invokestatic 61 java/lang/String:valueOf (Ljava/lang/Object;)Ljava/lang/String;
/* */ // 142: invokespecial 65 java/lang/StringBuilder:<init> (Ljava/lang/String;)V
/* */ // 145: ldc 52
/* */ // 147: invokevirtual 66 java/lang/StringBuilder:append (Ljava/lang/String;)Ljava/lang/StringBuilder;
/* */ // 150: invokevirtual 70 java/lang/StringBuilder:toString ()Ljava/lang/String;
/* */ // 153: astore_1
/* */ // 154: new 59 java/lang/StringBuilder
/* */ // 157: dup
/* */ // 158: invokestatic 77 NET/worlds/network/NetUpdate:getUpgradeServerURL ()Ljava/lang/String;
/* */ // 161: invokestatic 61 java/lang/String:valueOf (Ljava/lang/Object;)Ljava/lang/String;
/* */ // 164: invokespecial 65 java/lang/StringBuilder:<init> (Ljava/lang/String;)V
/* */ // 167: aload 5
/* */ // 169: invokevirtual 66 java/lang/StringBuilder:append (Ljava/lang/String;)Ljava/lang/StringBuilder;
/* */ // 172: ldc 82
/* */ // 174: invokevirtual 66 java/lang/StringBuilder:append (Ljava/lang/String;)Ljava/lang/StringBuilder;
/* */ // 177: aload_1
/* */ // 178: invokevirtual 66 java/lang/StringBuilder:append (Ljava/lang/String;)Ljava/lang/StringBuilder;
/* */ // 181: invokevirtual 70 java/lang/StringBuilder:toString ()Ljava/lang/String;
/* */ // 184: invokestatic 84 NET/worlds/network/URL:make (Ljava/lang/String;)LNET/worlds/network/URL;
/* */ // 187: astore 6
/* */ // 189: aload 6
/* */ // 191: iconst_1
/* */ // 192: invokestatic 90 NET/worlds/network/Cache:getFile (LNET/worlds/network/URL;Z)LNET/worlds/network/CacheFile;
/* */ // 195: astore 7
/* */ // 197: aload 7
/* */ // 199: invokevirtual 96 NET/worlds/network/CacheFile:waitUntilLoaded ()V
/* */ // 202: aload 7
/* */ // 204: invokevirtual 101 NET/worlds/network/CacheFile:error ()Z
/* */ // 207: ifeq +5 -> 212
/* */ // 210: aconst_null
/* */ // 211: areturn
/* */ // 212: aload_0
/* */ // 213: aload 5
/* */ // 215: putfield 54 NET/worlds/scape/WorldScriptLoader:lastWorldName Ljava/lang/String;
/* */ // 218: aload 7
/* */ // 220: invokevirtual 105 NET/worlds/network/CacheFile:getLocalName ()Ljava/lang/String;
/* */ // 223: astore 8
/* */ // 225: new 108 java/io/File
/* */ // 228: dup
/* */ // 229: aload 8
/* */ // 231: invokespecial 110 java/io/File:<init> (Ljava/lang/String;)V
/* */ // 234: astore 9
/* */ // 236: new 111 java/io/FileInputStream
/* */ // 239: dup
/* */ // 240: aload 9
/* */ // 242: invokespecial 113 java/io/FileInputStream:<init> (Ljava/io/File;)V
/* */ // 245: astore 10
/* */ // 247: sipush 1024
/* */ // 250: newarray <illegal type>
/* */ // 252: astore 11
/* */ // 254: new 116 java/io/ByteArrayOutputStream
/* */ // 257: dup
/* */ // 258: invokespecial 118 java/io/ByteArrayOutputStream:<init> ()V
/* */ // 261: astore 12
/* */ // 263: aload 10
/* */ // 265: aload 11
/* */ // 267: invokevirtual 119 java/io/FileInputStream:read ([B)I
/* */ // 270: istore 13
/* */ // 272: iload 13
/* */ // 274: iconst_m1
/* */ // 275: if_icmpne +6 -> 281
/* */ // 278: goto +18 -> 296
/* */ // 281: aload 12
/* */ // 283: aload 11
/* */ // 285: iconst_0
/* */ // 286: iload 13
/* */ // 288: invokevirtual 123 java/io/ByteArrayOutputStream:write ([BII)V
/* */ // 291: goto -28 -> 263
/* */ // 294: astore 13
/* */ // 296: aload 10
/* */ // 298: invokevirtual 127 java/io/FileInputStream:close ()V
/* */ // 301: aload 12
/* */ // 303: invokevirtual 130 java/io/ByteArrayOutputStream:toByteArray ()[B
/* */ // 306: areturn
/* */ // 307: astore 9
/* */ // 309: aconst_null
/* */ // 310: areturn
/* */ // Line number table:
/* */ // Java source line #26 -> byte code offset #0
/* */ // Java source line #27 -> byte code offset #3
/* */ // Java source line #28 -> byte code offset #11
/* */ // Java source line #32 -> byte code offset #20
/* */ // Java source line #33 -> byte code offset #27
/* */ // Java source line #34 -> byte code offset #32
/* */ // Java source line #35 -> byte code offset #34
/* */ // Java source line #36 -> byte code offset #37
/* */ // Java source line #38 -> byte code offset #52
/* */ // Java source line #41 -> byte code offset #60
/* */ // Java source line #42 -> byte code offset #71
/* */ // Java source line #43 -> byte code offset #77
/* */ // Java source line #44 -> byte code offset #86
/* */ // Java source line #45 -> byte code offset #89
/* */ // Java source line #46 -> byte code offset #96
/* */ // Java source line #48 -> byte code offset #116
/* */ // Java source line #49 -> byte code offset #119
/* */ // Java source line #50 -> byte code offset #125
/* */ // Java source line #51 -> byte code offset #134
/* */ // Java source line #56 -> byte code offset #154
/* */ // Java source line #59 -> byte code offset #189
/* */ // Java source line #60 -> byte code offset #197
/* */ // Java source line #61 -> byte code offset #202
/* */ // Java source line #62 -> byte code offset #210
/* */ // Java source line #65 -> byte code offset #212
/* */ // Java source line #66 -> byte code offset #218
/* */ // Java source line #69 -> byte code offset #225
/* */ // Java source line #71 -> byte code offset #236
/* */ // Java source line #73 -> byte code offset #247
/* */ // Java source line #75 -> byte code offset #254
/* */ // Java source line #79 -> byte code offset #263
/* */ // Java source line #80 -> byte code offset #272
/* */ // Java source line #81 -> byte code offset #278
/* */ // Java source line #82 -> byte code offset #281
/* */ // Java source line #83 -> byte code offset #291
/* */ // Java source line #88 -> byte code offset #296
/* */ // Java source line #89 -> byte code offset #301
/* */ // Java source line #90 -> byte code offset #307
/* */ // Java source line #91 -> byte code offset #309
/* */ // Local variable table:
/* */ // start length slot name signature
/* */ // 0 311 0 this WorldScriptLoader
/* */ // 0 311 1 name String
/* */ // 2 11 2 prefix String
/* */ // 26 65 3 nameIdx int
/* */ // 58 22 4 extIdx int
/* */ // 84 3 5 worldName String
/* */ // 94 3 5 worldName String
/* */ // 123 91 5 worldName String
/* */ // 187 3 6 scriptURL NET.worlds.network.URL
/* */ // 195 24 7 f NET.worlds.network.CacheFile
/* */ // 223 7 8 fileName String
/* */ // 234 7 9 file java.io.File
/* */ // 307 3 9 e Exception
/* */ // 245 52 10 fis java.io.FileInputStream
/* */ // 252 32 11 buffer byte[]
/* */ // 261 41 12 os java.io.ByteArrayOutputStream
/* */ // 270 17 13 bytesRead int
/* */ // 294 1 13 localException1 Exception
/* */ // Exception table:
/* */ // from to target type
/* */ // 263 278 294 java/lang/Exception
/* */ // 281 291 294 java/lang/Exception
/* */ // 225 306 307 java/lang/Exception
/* */ }
/* */
/* */ public synchronized Class<?> loadClass(String name, boolean resolve)
/* */ {
/* 99 */ Class<?> c = (Class)this.cache.get(name);
/* 100 */ if (c == null) {
/* 101 */ byte[] data = null;
/* */
/* 103 */ if (!name.startsWith("java.")) {
/* 104 */ data = loadClassData(name);
/* */ }
/* */
/* 107 */ if (data == null) {
/* */ try {
/* 109 */ return findSystemClass(name);
/* */ } catch (Error e) {
/* 111 */ System.out.println("Could not load script " + name + " " + e);
/* 112 */ return null;
/* */ } catch (Exception e) {
/* 114 */ System.out.println("Could not load script " + name + " " + e);
/* 115 */ return null;
/* */ }
/* */ }
/* 118 */ c = defineClass(null, data, 0, data.length);
/* 119 */ this.cache.put(name, c);
/* */ }
/* 121 */ if (resolve) {
/* 122 */ resolveClass(c);
/* */ }
/* 124 */ return c;
/* */ }
/* */ }
/* Location: C:\Program Files (x86)\Worlds Inc\WorldsPlayer - Win7\lib\worlds.jar!\NET\worlds\scape\WorldScriptLoader.class
* Java compiler version: 6 (50.0)
* JD-Core Version: 0.7.1
*/
|