1 #include <ADT/Dictionary.d>
2 #include <__oo2c.h>
3 #include <setjmp.h>
4
ADT_Dictionary__DictionaryDesc_INIT(ADT_Dictionary__Dictionary dict)5 void ADT_Dictionary__DictionaryDesc_INIT(ADT_Dictionary__Dictionary dict) {
6 register OOC_INT64 i0;
7
8 i0 = (OOC_INT64)dict;
9 *(OOC_INT32*)((_check_pointer(i0, 4887))+8) = 0;
10 *(OOC_INT32*)((_check_pointer(i0, 4908))+12) = 0;
11 *(OOC_INT64*)((_check_pointer(i0, 4929))+16) = (OOC_INT64)0;
12 *(OOC_INT32*)(_check_pointer(i0, 4953)) = 0;
13 *(OOC_INT32*)((_check_pointer(i0, 4974))+4) = 0;
14 return;
15 ;
16 }
17
ADT_Dictionary__New(void)18 ADT_Dictionary__Dictionary ADT_Dictionary__New(void) {
19 register OOC_INT64 i0;
20
21 i0 = (OOC_INT64)RT0__NewObject(_td__qtd1.baseTypes[0]);
22 ADT_Dictionary__DictionaryDesc_INIT((ADT_Dictionary__Dictionary)i0);
23 return (ADT_Dictionary__Dictionary)i0;
24 ;
25 }
26
ADT_Dictionary__DictionaryDesc_Destroy(ADT_Dictionary__Dictionary dict)27 void ADT_Dictionary__DictionaryDesc_Destroy(ADT_Dictionary__Dictionary dict) {
28 register OOC_INT64 i0,i1,i2,i3,i4;
29 OOC_INT32 i;
30
31 i0 = (OOC_INT64)dict;
32 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 5206))+16);
33 i1 = i1!=(OOC_INT64)0;
34 if (!i1) goto l11;
35 i = 0;
36 i1 = *(OOC_INT32*)((_check_pointer(i0, 5250))+8);
37 i2 = 0<i1;
38 if (!i2) goto l10;
39 i2=0;
40 l5_loop:
41 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 5313))+16);
42 i3 = _check_pointer(i3, 5320);
43 i4 = OOC_ARRAY_LENGTH(i3, 0);
44 *(OOC_INT64*)((i3+((_check_index(i2, i4, OOC_UINT32, 5320))*24))+8) = (OOC_INT64)0;
45 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 5349))+16);
46 i3 = _check_pointer(i3, 5356);
47 i4 = OOC_ARRAY_LENGTH(i3, 0);
48 *(OOC_INT64*)((i3+((_check_index(i2, i4, OOC_UINT32, 5356))*24))+16) = (OOC_INT64)0;
49 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 5387))+16);
50 i3 = _check_pointer(i3, 5394);
51 i4 = OOC_ARRAY_LENGTH(i3, 0);
52 *(OOC_INT32*)(i3+((_check_index(i2, i4, OOC_UINT32, 5394))*24)) = 0;
53 i2 = i2+1;
54 i = i2;
55 i3 = i2<i1;
56 if (i3) goto l5_loop;
57 l10:
58 *(OOC_INT64*)((_check_pointer(i0, 5430))+16) = (OOC_INT64)0;
59 l11:
60 return;
61 ;
62 }
63
ADT_Dictionary__IsSet(Object__Object key)64 static OOC_CHAR8 ADT_Dictionary__IsSet(Object__Object key) {
65 register OOC_INT64 i0,i1;
66
67 i0 = (OOC_INT64)key;
68 i1 = i0!=(OOC_INT64)0;
69 if (i1) goto l3;
70 i0=0u;
71 goto l4;
72 l3:
73 i1 = (OOC_INT64)ADT_Dictionary__dummy;
74 i0 = i0!=i1;
75
76 l4:
77 return i0;
78 ;
79 }
80
ADT_Dictionary__DictionaryDesc_InternalLookup(ADT_Dictionary__Dictionary dict,Object__Object key,OOC_INT32 hash)81 OOC_INT32 ADT_Dictionary__DictionaryDesc_InternalLookup(ADT_Dictionary__Dictionary dict, Object__Object key, OOC_INT32 hash) {
82 register OOC_INT64 i0,i1,i2,i3,i4,i5,i6,i7,i8;
83 ADT_Dictionary__Table t;
84 OOC_UINT32 mask;
85 OOC_INT32 i;
86 OOC_INT32 freeslot;
87 OOC_INT32 incr;
88
89 i0 = (OOC_INT64)dict;
90 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 6885))+16);
91 t = (ADT_Dictionary__Table)i1;
92 i2 = *(OOC_INT32*)((_check_pointer(i0, 6922))+8);
93 i3 = hash;
94 i4 = _type_cast_fast(OOC_UINT32, OOC_INT32, i3);
95 i2 = _type_cast_fast(OOC_UINT32, OOC_INT32, (i2-1));
96 mask = i2;
97 i5 = _type_cast_fast(OOC_INT32, OOC_UINT32, ((~i4)&i2));
98 i = i5;
99 i6 = _check_pointer(i1, 6995);
100 i7 = OOC_ARRAY_LENGTH(i6, 0);
101 i6 = (OOC_INT64)*(OOC_INT64*)((i6+((_check_index(i5, i7, OOC_UINT32, 6995))*24))+8);
102 i6 = i6==(OOC_INT64)0;
103 if (i6) goto l3;
104 i6 = _check_pointer(i1, 7016);
105 i7 = OOC_ARRAY_LENGTH(i6, 0);
106 i6 = (OOC_INT64)*(OOC_INT64*)((i6+((_check_index(i5, i7, OOC_UINT32, 7016))*24))+8);
107 i7 = (OOC_INT64)key;
108 i6 = i6==i7;
109
110 goto l4;
111 l3:
112 i6=1u;
113 l4:
114 i7 = (OOC_INT64)key;
115 if (i6) goto l19;
116 i6 = _check_pointer(i1, 7064);
117 i8 = OOC_ARRAY_LENGTH(i6, 0);
118 i6 = (OOC_INT64)*(OOC_INT64*)((i6+((_check_index(i5, i8, OOC_UINT32, 7064))*24))+8);
119 i8 = (OOC_INT64)ADT_Dictionary__dummy;
120 i6 = i6==i8;
121 if (i6) goto l17;
122 i6 = _check_pointer(i1, 7119);
123 i8 = OOC_ARRAY_LENGTH(i6, 0);
124 i6 = *(OOC_INT32*)(i6+((_check_index(i5, i8, OOC_UINT32, 7119))*24));
125 i6 = i6==i3;
126 if (i6) goto l11;
127 i6=0u;
128 goto l13;
129 l11:
130 i6 = _check_pointer(i1, 7153);
131 i8 = OOC_ARRAY_LENGTH(i6, 0);
132 i6 = (OOC_INT64)*(OOC_INT64*)((i6+((_check_index(i5, i8, OOC_UINT32, 7153))*24))+8);
133 i6 = OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i7, 7142)))), Object__ObjectDesc_Equals)),Object__ObjectDesc_Equals)((Object__Object)i7, (Object__Object)i6);
134
135 l13:
136 if (i6) goto l15;
137 freeslot = (-1);
138 goto l20;
139 l15:
140 return i5;
141 goto l20;
142 l17:
143 freeslot = i5;
144 goto l20;
145 l19:
146 return i5;
147 l20:
148 i4 = _type_cast_fast(OOC_INT32, OOC_UINT32, ((i4^(_type_cast_fast(OOC_UINT32, OOC_INT32, (_lsh(OOC_INT32, OOC_UINT32, i3, (-3))))))&i2));
149 incr = i4;
150 i6 = i4==0;
151 if (!i6) goto l24;
152 i4 = *(OOC_INT32*)((_check_pointer(i0, 7355))+8);
153 i4 = i4-1;
154 incr = i4;
155
156 l24:
157 {register OOC_INT64 h0=i4;i4=i5;i5=h0;}
158 l25_loop:
159 i4 = _type_cast_fast(OOC_INT32, OOC_UINT32, ((_type_cast_fast(OOC_UINT32, OOC_INT32, (i4+i5)))&i2));
160 i = i4;
161 i6 = _check_pointer(i1, 7448);
162 i8 = OOC_ARRAY_LENGTH(i6, 0);
163 i6 = (OOC_INT64)*(OOC_INT64*)((i6+((_check_index(i4, i8, OOC_UINT32, 7448))*24))+8);
164 i6 = i6==(OOC_INT64)0;
165 if (i6) goto l42;
166 i6 = _check_pointer(i1, 7585);
167 i8 = OOC_ARRAY_LENGTH(i6, 0);
168 i6 = (OOC_INT64)*(OOC_INT64*)((i6+((_check_index(i4, i8, OOC_UINT32, 7585))*24))+8);
169 i8 = (OOC_INT64)ADT_Dictionary__dummy;
170 i6 = i6==i8;
171 if (i6) goto l37;
172 i6 = _check_pointer(i1, 7689);
173 i8 = OOC_ARRAY_LENGTH(i6, 0);
174 i6 = *(OOC_INT32*)(i6+((_check_index(i4, i8, OOC_UINT32, 7689))*24));
175 i6 = i6==i3;
176 if (i6) goto l32;
177 i6=0u;
178 goto l34;
179 l32:
180 i6 = _check_pointer(i1, 7723);
181 i8 = OOC_ARRAY_LENGTH(i6, 0);
182 i6 = (OOC_INT64)*(OOC_INT64*)((i6+((_check_index(i4, i8, OOC_UINT32, 7723))*24))+8);
183 i6 = OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i7, 7712)))), Object__ObjectDesc_Equals)),Object__ObjectDesc_Equals)((Object__Object)i7, (Object__Object)i6);
184
185 l34:
186 if (!i6) goto l47;
187 return i4;
188 goto l47;
189 l37:
190 i6 = freeslot;
191 i6 = i6<0;
192 if (!i6) goto l47;
193 freeslot = i4;
194 goto l47;
195 l42:
196 i6 = freeslot;
197 i8 = i6>=0;
198 if (i8) goto l45;
199 return i4;
200 goto l47;
201 l45:
202 return i6;
203 l47:
204 i5 = i5*2;
205 incr = i5;
206 i6 = *(OOC_INT32*)((_check_pointer(i0, 7810))+8);
207 i6 = i5>=i6;
208 if (!i6) goto l25_loop;
209 i6 = *(OOC_INT32*)((_check_pointer(i0, 7891))+12);
210 i5 = _type_cast_fast(OOC_INT32, OOC_UINT32, ((_type_cast_fast(OOC_UINT32, OOC_INT32, i5))^(_type_cast_fast(OOC_UINT32, OOC_INT32, i6))));
211 incr = i5;
212
213 goto l25_loop;
214 l53:
215 ;
216 }
217
ADT_Dictionary__DictionaryDesc_Insert(ADT_Dictionary__Dictionary dict,Object__Object key,OOC_INT32 hash,Object__Object value)218 void ADT_Dictionary__DictionaryDesc_Insert(ADT_Dictionary__Dictionary dict, Object__Object key, OOC_INT32 hash, Object__Object value) {
219 register OOC_INT64 i0,i1,i2,i3,i4,i5;
220 OOC_INT32 i;
221
222 i0 = hash;
223 i1 = (OOC_INT64)key;
224 i2 = (OOC_INT64)dict;
225 i3 = ADT_Dictionary__DictionaryDesc_InternalLookup((ADT_Dictionary__Dictionary)i2, (Object__Object)i1, i0);
226 i = i3;
227 i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 8283))+16);
228 i4 = _check_pointer(i4, 8290);
229 i5 = OOC_ARRAY_LENGTH(i4, 0);
230 i4 = (OOC_INT64)*(OOC_INT64*)((i4+((_check_index(i3, i5, OOC_UINT32, 8290))*24))+8);
231 i4 = ADT_Dictionary__IsSet((Object__Object)i4);
232 if (i4) goto l6;
233 i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 8450))+16);
234 i4 = _check_pointer(i4, 8457);
235 i5 = OOC_ARRAY_LENGTH(i4, 0);
236 i4 = (OOC_INT64)*(OOC_INT64*)((i4+((_check_index(i3, i5, OOC_UINT32, 8457))*24))+8);
237 i4 = i4==(OOC_INT64)0;
238 if (!i4) goto l5;
239 i4 = *(OOC_INT32*)(_check_pointer(i2, 8495));
240 *(OOC_INT32*)(_check_pointer(i2, 8495)) = (i4+1);
241 l5:
242 i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 8524))+16);
243 i4 = _check_pointer(i4, 8531);
244 i5 = OOC_ARRAY_LENGTH(i4, 0);
245 *(OOC_INT64*)((i4+((_check_index(i3, i5, OOC_UINT32, 8531))*24))+8) = i1;
246 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 8558))+16);
247 i1 = _check_pointer(i1, 8565);
248 i4 = OOC_ARRAY_LENGTH(i1, 0);
249 *(OOC_INT32*)(i1+((_check_index(i3, i4, OOC_UINT32, 8565))*24)) = i0;
250 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 8594))+16);
251 i0 = _check_pointer(i0, 8601);
252 i1 = OOC_ARRAY_LENGTH(i0, 0);
253 i4 = (OOC_INT64)value;
254 *(OOC_INT64*)((i0+((_check_index(i3, i1, OOC_UINT32, 8601))*24))+16) = i4;
255 i0 = *(OOC_INT32*)((_check_pointer(i2, 8637))+4);
256 *(OOC_INT32*)((_check_pointer(i2, 8637))+4) = (i0+1);
257 goto l7;
258 l6:
259 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 8342))+16);
260 i0 = _check_pointer(i0, 8349);
261 i1 = OOC_ARRAY_LENGTH(i0, 0);
262 i2 = (OOC_INT64)value;
263 *(OOC_INT64*)((i0+((_check_index(i3, i1, OOC_UINT32, 8349))*24))+16) = i2;
264 l7:
265 return;
266 ;
267 }
268
ADT_Dictionary__DictionaryDesc_Resize(ADT_Dictionary__Dictionary dict,OOC_INT32 minUsed)269 void ADT_Dictionary__DictionaryDesc_Resize(ADT_Dictionary__Dictionary dict, OOC_INT32 minUsed) {
270 register OOC_INT64 i0,i1,i2,i3,i4,i5,i6,i7,i8,i9;
271 OOC_INT32 oldSize;
272 ADT_Dictionary__Table oldTable;
273 OOC_INT32 i;
274 OOC_INT32 newSize;
275 OOC_INT32 newPoly;
276 ADT_Dictionary__Table newTable;
277
278 i0 = (OOC_INT64)dict;
279 i1 = *(OOC_INT32*)((_check_pointer(i0, 9054))+8);
280 oldSize = i1;
281 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 9082))+16);
282 oldTable = (ADT_Dictionary__Table)i2;
283 newSize = 4;
284 i3 = minUsed;
285 i4 = 4<=i3;
286 if (i4) goto l3;
287 i3=0;i4=4;
288 goto l9;
289 l3:
290 i4=0;i5=4;
291 l4_loop:
292 i5 = _ash(i5,1);
293 newSize = i5;
294 i4 = i4+1;
295 i6 = i5<=i3;
296 if (i6) goto l4_loop;
297 l8:
298 i3=i4;i4=i5;
299 l9:
300 i3 = *(OOC_INT32*)((OOC_INT64)ADT_Dictionary__polys+(_check_index(i3, 29, OOC_UINT32, 9235))*4);
301 newPoly = i3;
302 i5 = (OOC_INT64)RT0__NewObject(_td_ADT_Dictionary__Table.baseTypes[0], i4);
303 newTable = (ADT_Dictionary__Table)i5;
304 i = 0;
305 i6 = 0<i4;
306 if (!i6) goto l17;
307 i6=0;
308 l12_loop:
309 i7 = _check_pointer(i5, 9374);
310 i8 = OOC_ARRAY_LENGTH(i7, 0);
311 *(OOC_INT64*)((i7+((_check_index(i6, i8, OOC_UINT32, 9374))*24))+8) = (OOC_INT64)0;
312 i7 = _check_pointer(i5, 9405);
313 i8 = OOC_ARRAY_LENGTH(i7, 0);
314 *(OOC_INT64*)((i7+((_check_index(i6, i8, OOC_UINT32, 9405))*24))+16) = (OOC_INT64)0;
315 i7 = _check_pointer(i5, 9438);
316 i8 = OOC_ARRAY_LENGTH(i7, 0);
317 *(OOC_INT32*)(i7+((_check_index(i6, i8, OOC_UINT32, 9438))*24)) = 0;
318 i6 = i6+1;
319 i = i6;
320 i7 = i6<i4;
321 if (i7) goto l12_loop;
322 l17:
323 *(OOC_INT32*)((_check_pointer(i0, 9470))+8) = i4;
324 *(OOC_INT32*)((_check_pointer(i0, 9497))+12) = i3;
325 *(OOC_INT64*)((_check_pointer(i0, 9524))+16) = i5;
326 *(OOC_INT32*)(_check_pointer(i0, 9553)) = 0;
327 *(OOC_INT32*)((_check_pointer(i0, 9574))+4) = 0;
328 i = 0;
329 i3 = 0<i1;
330 if (!i3) goto l28;
331 i3=0;
332 l20_loop:
333 i4 = _check_pointer(i2, 9647);
334 i5 = OOC_ARRAY_LENGTH(i4, 0);
335 i4 = (OOC_INT64)*(OOC_INT64*)((i4+((_check_index(i3, i5, OOC_UINT32, 9647))*24))+8);
336 i4 = ADT_Dictionary__IsSet((Object__Object)i4);
337 if (!i4) goto l23;
338 i4 = _check_pointer(i2, 9727);
339 i5 = OOC_ARRAY_LENGTH(i4, 0);
340 i6 = _check_pointer(i2, 9708);
341 i7 = OOC_ARRAY_LENGTH(i6, 0);
342 i8 = _check_pointer(i2, 9690);
343 i9 = OOC_ARRAY_LENGTH(i8, 0);
344 i4 = (OOC_INT64)*(OOC_INT64*)((i4+((_check_index(i3, i5, OOC_UINT32, 9727))*24))+16);
345 i5 = (OOC_INT64)*(OOC_INT64*)((i8+((_check_index(i3, i9, OOC_UINT32, 9690))*24))+8);
346 i6 = *(OOC_INT32*)(i6+((_check_index(i3, i7, OOC_UINT32, 9708))*24));
347 ADT_Dictionary__DictionaryDesc_Insert((ADT_Dictionary__Dictionary)i0, (Object__Object)i5, i6, (Object__Object)i4);
348 i4 = _check_pointer(i2, 9756);
349 i5 = OOC_ARRAY_LENGTH(i4, 0);
350 *(OOC_INT64*)((i4+((_check_index(i3, i5, OOC_UINT32, 9756))*24))+8) = (OOC_INT64)0;
351 i4 = _check_pointer(i2, 9817);
352 i5 = OOC_ARRAY_LENGTH(i4, 0);
353 *(OOC_INT64*)((i4+((_check_index(i3, i5, OOC_UINT32, 9817))*24))+16) = (OOC_INT64)0;
354 l23:
355 i3 = i3+1;
356 i = i3;
357 i4 = i3<i1;
358 if (i4) goto l20_loop;
359 l28:
360 return;
361 ;
362 }
363
ADT_Dictionary__DictionaryDesc_HasKey(ADT_Dictionary__Dictionary dict,Object__Object key)364 OOC_CHAR8 ADT_Dictionary__DictionaryDesc_HasKey(ADT_Dictionary__Dictionary dict, Object__Object key) {
365 register OOC_INT64 i0,i1,i2;
366 OOC_INT32 index;
367
368 i0 = (OOC_INT64)dict;
369 i1 = *(OOC_INT32*)((_check_pointer(i0, 10117))+4);
370 i1 = i1==0;
371 if (i1) goto l3;
372 i1 = (OOC_INT64)key;
373 i2 = OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 10205)))), Object__ObjectDesc_HashCode)),Object__ObjectDesc_HashCode)((Object__Object)i1);
374 i1 = ADT_Dictionary__DictionaryDesc_InternalLookup((ADT_Dictionary__Dictionary)i0, (Object__Object)i1, i2);
375 index = i1;
376 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 10243))+16);
377 i0 = _check_pointer(i0, 10250);
378 i2 = OOC_ARRAY_LENGTH(i0, 0);
379 i0 = (OOC_INT64)*(OOC_INT64*)((i0+((_check_index(i1, i2, OOC_UINT32, 10250))*24))+8);
380 i0 = ADT_Dictionary__IsSet((Object__Object)i0);
381 return i0;
382 goto l4;
383 l3:
384 return 0u;
385 l4:
386 _failed_function(9905); return 0;
387 ;
388 }
389
ADT_Dictionary__DictionaryDesc_Size(ADT_Dictionary__Dictionary dict)390 OOC_INT32 ADT_Dictionary__DictionaryDesc_Size(ADT_Dictionary__Dictionary dict) {
391 register OOC_INT64 i0;
392
393 i0 = (OOC_INT64)dict;
394 i0 = *(OOC_INT32*)((_check_pointer(i0, 10418))+4);
395 return i0;
396 ;
397 }
398
ADT_Dictionary__DictionaryDesc_Get(ADT_Dictionary__Dictionary dict,Object__Object key)399 Object__Object ADT_Dictionary__DictionaryDesc_Get(ADT_Dictionary__Dictionary dict, Object__Object key) {
400 register OOC_INT64 i0,i1,i2,i3;
401 OOC_INT32 i;
402
403 i0 = (OOC_INT64)key;
404 _assert((i0!=(OOC_INT64)0), 127, 10776);
405 i1 = (OOC_INT64)dict;
406 i2 = *(OOC_INT32*)((_check_pointer(i1, 10812))+4);
407 _assert((i2!=0), 127, 10800);
408 i2 = OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 10862)))), Object__ObjectDesc_HashCode)),Object__ObjectDesc_HashCode)((Object__Object)i0);
409 i0 = ADT_Dictionary__DictionaryDesc_InternalLookup((ADT_Dictionary__Dictionary)i1, (Object__Object)i0, i2);
410 i = i0;
411 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 10900))+16);
412 i2 = _check_pointer(i2, 10907);
413 i3 = OOC_ARRAY_LENGTH(i2, 0);
414 i2 = (OOC_INT64)*(OOC_INT64*)((i2+((_check_index(i0, i3, OOC_UINT32, 10907))*24))+8);
415 i2 = ADT_Dictionary__IsSet((Object__Object)i2);
416 _assert(i2, 127, 10881);
417 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 10934))+16);
418 i1 = _check_pointer(i1, 10941);
419 i2 = OOC_ARRAY_LENGTH(i1, 0);
420 i0 = (OOC_INT64)*(OOC_INT64*)((i1+((_check_index(i0, i2, OOC_UINT32, 10941))*24))+16);
421 return (Object__Object)i0;
422 ;
423 }
424
ADT_Dictionary__DictionaryDesc_Lookup(ADT_Dictionary__Dictionary dict,Object__Object key,Object__Object * value)425 OOC_CHAR8 ADT_Dictionary__DictionaryDesc_Lookup(ADT_Dictionary__Dictionary dict, Object__Object key, Object__Object *value) {
426 register OOC_INT64 i0,i1,i2,i3;
427 OOC_INT32 i;
428
429 i0 = (OOC_INT64)key;
430 _assert((i0!=(OOC_INT64)0), 127, 11371);
431 i1 = (OOC_INT64)dict;
432 i2 = *(OOC_INT32*)((_check_pointer(i1, 11402))+4);
433 i2 = i2==0;
434 if (i2) goto l7;
435 i2 = OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 11485)))), Object__ObjectDesc_HashCode)),Object__ObjectDesc_HashCode)((Object__Object)i0);
436 i0 = ADT_Dictionary__DictionaryDesc_InternalLookup((ADT_Dictionary__Dictionary)i1, (Object__Object)i0, i2);
437 i = i0;
438 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 11520))+16);
439 i2 = _check_pointer(i2, 11527);
440 i3 = OOC_ARRAY_LENGTH(i2, 0);
441 i2 = (OOC_INT64)*(OOC_INT64*)((i2+((_check_index(i0, i3, OOC_UINT32, 11527))*24))+8);
442 i2 = ADT_Dictionary__IsSet((Object__Object)i2);
443 if (i2) goto l5;
444 return 0u;
445 goto l8;
446 l5:
447 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 11563))+16);
448 i1 = _check_pointer(i1, 11570);
449 i2 = OOC_ARRAY_LENGTH(i1, 0);
450 i0 = (OOC_INT64)*(OOC_INT64*)((i1+((_check_index(i0, i2, OOC_UINT32, 11570))*24))+16);
451 *value = (Object__Object)i0;
452 return 1u;
453 goto l8;
454 l7:
455 return 0u;
456 l8:
457 _failed_function(10999); return 0;
458 ;
459 }
460
ADT_Dictionary__DictionaryDesc_Set(ADT_Dictionary__Dictionary dict,Object__Object key,Object__Object value)461 void ADT_Dictionary__DictionaryDesc_Set(ADT_Dictionary__Dictionary dict, Object__Object key, Object__Object value) {
462 register OOC_INT64 i0,i1,i2,i3;
463
464 i0 = (OOC_INT64)key;
465 _assert((i0!=(OOC_INT64)0), 127, 12057);
466 i1 = (OOC_INT64)dict;
467 i2 = *(OOC_INT32*)(_check_pointer(i1, 12089));
468 i3 = *(OOC_INT32*)((_check_pointer(i1, 12105))+8);
469 i2 = (i2*3)>=(i3*2);
470 if (!i2) goto l4;
471 i2 = *(OOC_INT32*)((_check_pointer(i1, 12142))+4);
472 ADT_Dictionary__DictionaryDesc_Resize((ADT_Dictionary__Dictionary)i1, (i2*2));
473 l4:
474 i2 = OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 12185)))), Object__ObjectDesc_HashCode)),Object__ObjectDesc_HashCode)((Object__Object)i0);
475 i3 = (OOC_INT64)value;
476 ADT_Dictionary__DictionaryDesc_Insert((ADT_Dictionary__Dictionary)i1, (Object__Object)i0, i2, (Object__Object)i3);
477 return;
478 ;
479 }
480
ADT_Dictionary__DictionaryDesc_Copy(ADT_Dictionary__Dictionary dict)481 ADT_Dictionary__Dictionary ADT_Dictionary__DictionaryDesc_Copy(ADT_Dictionary__Dictionary dict) {
482 register OOC_INT64 i0,i1,i2,i3,i4,i5,i6,i7,i8,i9;
483 ADT_Dictionary__Dictionary copy;
484 OOC_INT32 i;
485
486 i0 = (OOC_INT64)RT0__NewObject(_td__qtd5.baseTypes[0]);
487 ADT_Dictionary__DictionaryDesc_INIT((ADT_Dictionary__Dictionary)i0);
488 copy = (ADT_Dictionary__Dictionary)i0;
489 i1 = (OOC_INT64)dict;
490 i2 = *(OOC_INT32*)((_check_pointer(i1, 12505))+4);
491 i2 = i2>0;
492 if (!i2) goto l14;
493 i2 = *(OOC_INT32*)((_check_pointer(i1, 12545))+4);
494 ADT_Dictionary__DictionaryDesc_Resize((ADT_Dictionary__Dictionary)i0, ((i2*3)>>1));
495 i2 = *(OOC_INT32*)((_check_pointer(i1, 12587))+8);
496 i = 0;
497 i3 = 0<i2;
498 if (!i3) goto l14;
499 i3=0;
500 l5_loop:
501 i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 12621))+16);
502 i4 = _check_pointer(i4, 12628);
503 i5 = OOC_ARRAY_LENGTH(i4, 0);
504 i4 = (OOC_INT64)*(OOC_INT64*)((i4+((_check_index(i3, i5, OOC_UINT32, 12628))*24))+8);
505 i4 = ADT_Dictionary__IsSet((Object__Object)i4);
506 if (!i4) goto l8;
507 i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 12730))+16);
508 i4 = _check_pointer(i4, 12736);
509 i5 = OOC_ARRAY_LENGTH(i4, 0);
510 i6 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 12688))+16);
511 i6 = _check_pointer(i6, 12694);
512 i7 = OOC_ARRAY_LENGTH(i6, 0);
513 i8 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 12669))+16);
514 i8 = _check_pointer(i8, 12675);
515 i9 = OOC_ARRAY_LENGTH(i8, 0);
516 i4 = (OOC_INT64)*(OOC_INT64*)((i4+((_check_index(i3, i5, OOC_UINT32, 12736))*24))+16);
517 i5 = (OOC_INT64)*(OOC_INT64*)((i8+((_check_index(i3, i9, OOC_UINT32, 12675))*24))+8);
518 i6 = *(OOC_INT32*)(i6+((_check_index(i3, i7, OOC_UINT32, 12694))*24));
519 ADT_Dictionary__DictionaryDesc_Insert((ADT_Dictionary__Dictionary)i0, (Object__Object)i5, i6, (Object__Object)i4);
520 l8:
521 i3 = i3+1;
522 i = i3;
523 i4 = i3<i2;
524 if (i4) goto l5_loop;
525 l14:
526 return (ADT_Dictionary__Dictionary)i0;
527 ;
528 }
529
ADT_Dictionary__DictionaryDesc_Delete(ADT_Dictionary__Dictionary dict,Object__Object key)530 void ADT_Dictionary__DictionaryDesc_Delete(ADT_Dictionary__Dictionary dict, Object__Object key) {
531 register OOC_INT64 i0,i1,i2,i3,i4;
532 OOC_INT32 i;
533
534 i0 = (OOC_INT64)key;
535 _assert((i0!=(OOC_INT64)0), 127, 13142);
536 i1 = (OOC_INT64)dict;
537 i2 = *(OOC_INT32*)((_check_pointer(i1, 13178))+4);
538 _assert((i2!=0), 127, 13166);
539 i2 = OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 13228)))), Object__ObjectDesc_HashCode)),Object__ObjectDesc_HashCode)((Object__Object)i0);
540 i0 = ADT_Dictionary__DictionaryDesc_InternalLookup((ADT_Dictionary__Dictionary)i1, (Object__Object)i0, i2);
541 i = i0;
542 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 13266))+16);
543 i2 = _check_pointer(i2, 13273);
544 i3 = OOC_ARRAY_LENGTH(i2, 0);
545 i2 = (OOC_INT64)*(OOC_INT64*)((i2+((_check_index(i0, i3, OOC_UINT32, 13273))*24))+8);
546 i2 = ADT_Dictionary__IsSet((Object__Object)i2);
547 _assert(i2, 127, 13247);
548 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 13337))+16);
549 i2 = _check_pointer(i2, 13343);
550 i3 = OOC_ARRAY_LENGTH(i2, 0);
551 i4 = (OOC_INT64)ADT_Dictionary__dummy;
552 *(OOC_INT64*)((i2+((_check_index(i0, i3, OOC_UINT32, 13343))*24))+8) = ((OOC_INT64)_type_cast_fast(OOC_INT64, OOC_INT64, i4));
553 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 13379))+16);
554 i2 = _check_pointer(i2, 13385);
555 i3 = OOC_ARRAY_LENGTH(i2, 0);
556 *(OOC_INT64*)((i2+((_check_index(i0, i3, OOC_UINT32, 13385))*24))+16) = (OOC_INT64)0;
557 i0 = *(OOC_INT32*)((_check_pointer(i1, 13416))+4);
558 *(OOC_INT32*)((_check_pointer(i1, 13416))+4) = (i0-1);
559 return;
560 ;
561 }
562
ADT_Dictionary__DictionaryDesc_Clear(ADT_Dictionary__Dictionary dict)563 void ADT_Dictionary__DictionaryDesc_Clear(ADT_Dictionary__Dictionary dict) {
564 register OOC_INT64 i0,i1,i2,i3,i4;
565 OOC_INT32 i;
566
567 i0 = (OOC_INT64)dict;
568 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 13584))+16);
569 i1 = i1!=(OOC_INT64)0;
570 if (!i1) goto l11;
571 i = 0;
572 i1 = *(OOC_INT32*)((_check_pointer(i0, 13628))+8);
573 i2 = 0<i1;
574 if (!i2) goto l10;
575 i2=0;
576 l5_loop:
577 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 13691))+16);
578 i3 = _check_pointer(i3, 13698);
579 i4 = OOC_ARRAY_LENGTH(i3, 0);
580 *(OOC_INT64*)((i3+((_check_index(i2, i4, OOC_UINT32, 13698))*24))+8) = (OOC_INT64)0;
581 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 13727))+16);
582 i3 = _check_pointer(i3, 13734);
583 i4 = OOC_ARRAY_LENGTH(i3, 0);
584 *(OOC_INT64*)((i3+((_check_index(i2, i4, OOC_UINT32, 13734))*24))+16) = (OOC_INT64)0;
585 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 13765))+16);
586 i3 = _check_pointer(i3, 13772);
587 i4 = OOC_ARRAY_LENGTH(i3, 0);
588 *(OOC_INT32*)(i3+((_check_index(i2, i4, OOC_UINT32, 13772))*24)) = 0;
589 i2 = i2+1;
590 i = i2;
591 i3 = i2<i1;
592 if (i3) goto l5_loop;
593 l10:
594 ADT_Dictionary__DictionaryDesc_INIT((ADT_Dictionary__Dictionary)i0);
595 l11:
596 return;
597 ;
598 }
599
ADT_Dictionary__DictionaryDesc_Keys(ADT_Dictionary__Dictionary dict)600 Object__ObjectArrayPtr ADT_Dictionary__DictionaryDesc_Keys(ADT_Dictionary__Dictionary dict) {
601 register OOC_INT64 i0,i1,i2,i3,i4,i5,i6,i7,i8;
602 Object__ObjectArrayPtr list;
603 OOC_INT32 j;
604 OOC_INT32 i;
605
606 i0 = (OOC_INT64)dict;
607 i1 = *(OOC_INT32*)((_check_pointer(i0, 14112))+4);
608 i1 = (OOC_INT64)RT0__NewObject(_td_Object__ObjectArrayPtr.baseTypes[0], i1);
609 list = (Object__ObjectArrayPtr)i1;
610 j = 0;
611 i2 = *(OOC_INT32*)((_check_pointer(i0, 14155))+8);
612 i = 0;
613 i3 = 0<i2;
614 if (i3) goto l3;
615 i2=0;
616 goto l13;
617 l3:
618 i3=0;i4=0;
619 l4_loop:
620 i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 14187))+16);
621 i5 = _check_pointer(i5, 14194);
622 i6 = OOC_ARRAY_LENGTH(i5, 0);
623 i5 = (OOC_INT64)*(OOC_INT64*)((i5+((_check_index(i3, i6, OOC_UINT32, 14194))*24))+8);
624 i5 = ADT_Dictionary__IsSet((Object__Object)i5);
625 if (!i5) goto l8;
626 i5 = _check_pointer(i1, 14221);
627 i6 = OOC_ARRAY_LENGTH(i5, 0);
628 i7 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 14232))+16);
629 i7 = _check_pointer(i7, 14239);
630 i8 = OOC_ARRAY_LENGTH(i7, 0);
631 i7 = (OOC_INT64)*(OOC_INT64*)((i7+((_check_index(i3, i8, OOC_UINT32, 14239))*24))+8);
632 *(OOC_INT64*)(i5+(_check_index(i4, i6, OOC_UINT32, 14221))*8) = i7;
633 i4 = i4+1;
634 j = i4;
635
636 l8:
637 i3 = i3+1;
638 i = i3;
639 i5 = i3<i2;
640 if (i5) goto l4_loop;
641 l12:
642 i2=i4;
643 l13:
644 i0 = *(OOC_INT32*)((_check_pointer(i0, 14304))+4);
645 _assert((i2==i0), 127, 14288);
646 return (Object__ObjectArrayPtr)i1;
647 ;
648 }
649
ADT_Dictionary__DictionaryDesc_Values(ADT_Dictionary__Dictionary dict)650 Object__ObjectArrayPtr ADT_Dictionary__DictionaryDesc_Values(ADT_Dictionary__Dictionary dict) {
651 register OOC_INT64 i0,i1,i2,i3,i4,i5,i6,i7,i8;
652 Object__ObjectArrayPtr list;
653 OOC_INT32 j;
654 OOC_INT32 i;
655
656 i0 = (OOC_INT64)dict;
657 i1 = *(OOC_INT32*)((_check_pointer(i0, 14620))+4);
658 i1 = (OOC_INT64)RT0__NewObject(_td_Object__ObjectArrayPtr.baseTypes[0], i1);
659 list = (Object__ObjectArrayPtr)i1;
660 j = 0;
661 i2 = *(OOC_INT32*)((_check_pointer(i0, 14663))+8);
662 i = 0;
663 i3 = 0<i2;
664 if (i3) goto l3;
665 i2=0;
666 goto l13;
667 l3:
668 i3=0;i4=0;
669 l4_loop:
670 i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 14695))+16);
671 i5 = _check_pointer(i5, 14702);
672 i6 = OOC_ARRAY_LENGTH(i5, 0);
673 i5 = (OOC_INT64)*(OOC_INT64*)((i5+((_check_index(i3, i6, OOC_UINT32, 14702))*24))+8);
674 i5 = ADT_Dictionary__IsSet((Object__Object)i5);
675 if (!i5) goto l8;
676 i5 = _check_pointer(i1, 14729);
677 i6 = OOC_ARRAY_LENGTH(i5, 0);
678 i7 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 14740))+16);
679 i7 = _check_pointer(i7, 14747);
680 i8 = OOC_ARRAY_LENGTH(i7, 0);
681 i7 = (OOC_INT64)*(OOC_INT64*)((i7+((_check_index(i3, i8, OOC_UINT32, 14747))*24))+16);
682 *(OOC_INT64*)(i5+(_check_index(i4, i6, OOC_UINT32, 14729))*8) = i7;
683 i4 = i4+1;
684 j = i4;
685
686 l8:
687 i3 = i3+1;
688 i = i3;
689 i5 = i3<i2;
690 if (i5) goto l4_loop;
691 l12:
692 i2=i4;
693 l13:
694 i0 = *(OOC_INT32*)((_check_pointer(i0, 14814))+4);
695 _assert((i2==i0), 127, 14798);
696 return (Object__ObjectArrayPtr)i1;
697 ;
698 }
699
ADT_Dictionary__DictionaryDesc_Items(ADT_Dictionary__Dictionary dict)700 ADT_Dictionary__ItemArrayPtr ADT_Dictionary__DictionaryDesc_Items(ADT_Dictionary__Dictionary dict) {
701 register OOC_INT64 i0,i1,i2,i3,i4,i5,i6,i7,i8;
702 ADT_Dictionary__ItemArrayPtr list;
703 OOC_INT32 j;
704 OOC_INT32 i;
705
706 i0 = (OOC_INT64)dict;
707 i1 = *(OOC_INT32*)((_check_pointer(i0, 15116))+4);
708 i1 = (OOC_INT64)RT0__NewObject(_td_ADT_Dictionary__ItemArrayPtr.baseTypes[0], i1);
709 list = (ADT_Dictionary__ItemArrayPtr)i1;
710 j = 0;
711 i2 = *(OOC_INT32*)((_check_pointer(i0, 15158))+8);
712 i = 0;
713 i3 = 0<i2;
714 if (i3) goto l3;
715 i2=0;
716 goto l13;
717 l3:
718 i3=0;i4=0;
719 l4_loop:
720 i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 15189))+16);
721 i5 = _check_pointer(i5, 15195);
722 i6 = OOC_ARRAY_LENGTH(i5, 0);
723 i5 = (OOC_INT64)*(OOC_INT64*)((i5+((_check_index(i3, i6, OOC_UINT32, 15195))*24))+8);
724 i5 = ADT_Dictionary__IsSet((Object__Object)i5);
725 if (!i5) goto l8;
726 i5 = _check_pointer(i1, 15221);
727 i6 = OOC_ARRAY_LENGTH(i5, 0);
728 i7 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 15236))+16);
729 i7 = _check_pointer(i7, 15242);
730 i8 = OOC_ARRAY_LENGTH(i7, 0);
731 i7 = (OOC_INT64)*(OOC_INT64*)((i7+((_check_index(i3, i8, OOC_UINT32, 15242))*24))+8);
732 *(OOC_INT64*)(i5+((_check_index(i4, i6, OOC_UINT32, 15221))*16)) = i7;
733 i5 = _check_pointer(i1, 15263);
734 i6 = OOC_ARRAY_LENGTH(i5, 0);
735 i7 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 15280))+16);
736 i7 = _check_pointer(i7, 15286);
737 i8 = OOC_ARRAY_LENGTH(i7, 0);
738 i7 = (OOC_INT64)*(OOC_INT64*)((i7+((_check_index(i3, i8, OOC_UINT32, 15286))*24))+16);
739 *(OOC_INT64*)((i5+((_check_index(i4, i6, OOC_UINT32, 15263))*16))+8) = i7;
740 i4 = i4+1;
741 j = i4;
742
743 l8:
744 i3 = i3+1;
745 i = i3;
746 i5 = i3<i2;
747 if (i5) goto l4_loop;
748 l12:
749 i2=i4;
750 l13:
751 i0 = *(OOC_INT32*)((_check_pointer(i0, 15352))+4);
752 _assert((i2==i0), 127, 15337);
753 return (ADT_Dictionary__ItemArrayPtr)i1;
754 ;
755 }
756
ADT_Dictionary__DictionaryDesc_Equals(ADT_Dictionary__Dictionary dict,Object__Object obj)757 OOC_CHAR8 ADT_Dictionary__DictionaryDesc_Equals(ADT_Dictionary__Dictionary dict, Object__Object obj) {
758
759 _assert(0u, 127, 15507);
760 _failed_function(15427);
761 ;
762 }
763
ADT_Dictionary__DictionaryDesc_HashCode(ADT_Dictionary__Dictionary dict)764 OOC_INT32 ADT_Dictionary__DictionaryDesc_HashCode(ADT_Dictionary__Dictionary dict) {
765
766 _assert(0u, 127, 15649);
767 _failed_function(15581);
768 ;
769 }
770
ADT_Dictionary__DictionaryDesc_Store(ADT_Dictionary__Dictionary dict,ADT_Storable__Writer w)771 void ADT_Dictionary__DictionaryDesc_Store(ADT_Dictionary__Dictionary dict, ADT_Storable__Writer w) {
772 register OOC_INT64 i0,i1,i2,i3,i4,i5;
773 OOC_INT32 i;
774
775 i0 = (OOC_INT64)dict;
776 i1 = (OOC_INT64)w;
777 i2 = *(OOC_INT32*)((_check_pointer(i0, 15821))+4);
778 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 15805)))), IO_BinaryRider__WriterDesc_WriteNum)),IO_BinaryRider__WriterDesc_WriteNum)((IO_BinaryRider__Writer)i1, i2);
779 i2 = *(OOC_INT32*)((_check_pointer(i0, 15842))+4);
780 i2 = i2!=0;
781 if (!i2) goto l14;
782 i2 = *(OOC_INT32*)((_check_pointer(i0, 15883))+8);
783 i = 0;
784 i3 = 0<i2;
785 if (!i3) goto l14;
786 i3=0;
787 l5_loop:
788 i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 15917))+16);
789 i4 = _check_pointer(i4, 15924);
790 i5 = OOC_ARRAY_LENGTH(i4, 0);
791 i4 = (OOC_INT64)*(OOC_INT64*)((i4+((_check_index(i3, i5, OOC_UINT32, 15924))*24))+8);
792 i4 = ADT_Dictionary__IsSet((Object__Object)i4);
793 if (!i4) goto l8;
794 i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 15969))+16);
795 i4 = _check_pointer(i4, 15976);
796 i5 = OOC_ARRAY_LENGTH(i4, 0);
797 i4 = (OOC_INT64)*(OOC_INT64*)((i4+((_check_index(i3, i5, OOC_UINT32, 15976))*24))+8);
798 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 15950)))), ADT_Storable__WriterDesc_WriteObject)),ADT_Storable__WriterDesc_WriteObject)((ADT_Storable__Writer)i1, (Object__Object)i4);
799 i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 16017))+16);
800 i4 = _check_pointer(i4, 16024);
801 i5 = OOC_ARRAY_LENGTH(i4, 0);
802 i4 = (OOC_INT64)*(OOC_INT64*)((i4+((_check_index(i3, i5, OOC_UINT32, 16024))*24))+16);
803 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 15998)))), ADT_Storable__WriterDesc_WriteObject)),ADT_Storable__WriterDesc_WriteObject)((ADT_Storable__Writer)i1, (Object__Object)i4);
804 l8:
805 i3 = i3+1;
806 i = i3;
807 i4 = i3<i2;
808 if (i4) goto l5_loop;
809 l14:
810 return;
811 ;
812 }
813
ADT_Dictionary__DictionaryDesc_Load(ADT_Dictionary__Dictionary dict,ADT_Storable__Reader r)814 void ADT_Dictionary__DictionaryDesc_Load(ADT_Dictionary__Dictionary dict, ADT_Storable__Reader r) {
815 register OOC_INT64 i0,i1,i2,i3,i4,i5,i6,i7,i8,i9;
816 OOC_INT32 i;
817 Object__Object obj;
818
819 i0 = (OOC_INT64)dict;
820 ADT_Dictionary__DictionaryDesc_INIT((ADT_Dictionary__Dictionary)i0);
821 i1 = (OOC_INT64)r;
822 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 16236)))), IO_BinaryRider__ReaderDesc_ReadNum)),IO_BinaryRider__ReaderDesc_ReadNum)((IO_BinaryRider__Reader)i1, (void*)((_check_pointer(i0, 16251))+8));
823 i2 = *(OOC_INT32*)((_check_pointer(i0, 16272))+8);
824 i2 = i2!=0;
825 if (!i2) goto l11;
826 i2 = *(OOC_INT32*)((_check_pointer(i0, 16450))+8);
827 *(OOC_INT64*)((_check_pointer(i0, 16437))+16) = ((OOC_INT64)RT0__NewObject(_td_ADT_Dictionary__Table.baseTypes[0], i2));
828 i2 = *(OOC_INT32*)((_check_pointer(i0, 16483))+8);
829 i = 0;
830 i3 = 0<i2;
831 if (!i3) goto l10;
832 i3=0;
833 l5_loop:
834 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 16504)))), ADT_Storable__ReaderDesc_ReadObject)),ADT_Storable__ReaderDesc_ReadObject)((ADT_Storable__Reader)i1, (void*)(OOC_INT64)&obj);
835 i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 16536))+16);
836 i4 = _check_pointer(i4, 16542);
837 i5 = OOC_ARRAY_LENGTH(i4, 0);
838 i6 = (OOC_INT64)obj;
839 *(OOC_INT64*)((i4+((_check_index(i3, i5, OOC_UINT32, 16542))*24))+8) = ((OOC_INT64)_type_cast_fast(OOC_INT64, OOC_INT64, i6));
840 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 16577)))), ADT_Storable__ReaderDesc_ReadObject)),ADT_Storable__ReaderDesc_ReadObject)((ADT_Storable__Reader)i1, (void*)(OOC_INT64)&obj);
841 i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 16609))+16);
842 i4 = _check_pointer(i4, 16615);
843 i5 = OOC_ARRAY_LENGTH(i4, 0);
844 i6 = (OOC_INT64)obj;
845 *(OOC_INT64*)((i4+((_check_index(i3, i5, OOC_UINT32, 16615))*24))+16) = ((OOC_INT64)_type_cast_fast(OOC_INT64, OOC_INT64, i6));
846 i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 16656))+16);
847 i4 = _check_pointer(i4, 16662);
848 i5 = OOC_ARRAY_LENGTH(i4, 0);
849 i6 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 16678))+16);
850 i6 = _check_pointer(i6, 16684);
851 i7 = OOC_ARRAY_LENGTH(i6, 0);
852 i8 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 16678))+16);
853 i8 = _check_pointer(i8, 16684);
854 i9 = OOC_ARRAY_LENGTH(i8, 0);
855 i8 = (OOC_INT64)*(OOC_INT64*)((i8+((_check_index(i3, i9, OOC_UINT32, 16684))*24))+8);
856 i6 = (OOC_INT64)*(OOC_INT64*)((i6+((_check_index(i3, i7, OOC_UINT32, 16684))*24))+8);
857 i6 = OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i8, 16691)))), Object__ObjectDesc_HashCode)),Object__ObjectDesc_HashCode)((Object__Object)i6);
858 *(OOC_INT32*)(i4+((_check_index(i3, i5, OOC_UINT32, 16662))*24)) = i6;
859 i3 = i3+1;
860 i = i3;
861 i4 = i3<i2;
862 if (i4) goto l5_loop;
863 l10:
864 i1 = *(OOC_INT32*)((_check_pointer(i0, 16737))+8);
865 ADT_Dictionary__DictionaryDesc_Resize((ADT_Dictionary__Dictionary)i0, ((i1*3)>>1));
866 l11:
867 return;
868 ;
869 }
870
ADT_Dictionary__IterKeysDesc_INIT(ADT_Dictionary__IterKeys iter,ADT_Dictionary__Dictionary dict)871 void ADT_Dictionary__IterKeysDesc_INIT(ADT_Dictionary__IterKeys iter, ADT_Dictionary__Dictionary dict) {
872 register OOC_INT64 i0,i1;
873
874 i0 = (OOC_INT64)iter;
875 i1 = (OOC_INT64)dict;
876 *(OOC_INT64*)(_check_pointer(i0, 16857)) = i1;
877 *(OOC_INT32*)((_check_pointer(i0, 16880))+8) = 0;
878 return;
879 ;
880 }
881
ADT_Dictionary__DictionaryDesc_IterKeys(ADT_Dictionary__Dictionary dict)882 ADT_Dictionary__IterKeys ADT_Dictionary__DictionaryDesc_IterKeys(ADT_Dictionary__Dictionary dict) {
883 register OOC_INT64 i0,i1;
884
885 i0 = (OOC_INT64)RT0__NewObject(_td__qtd7.baseTypes[0]);
886 i1 = (OOC_INT64)dict;
887 ADT_Dictionary__IterKeysDesc_INIT((ADT_Dictionary__IterKeys)i0, (ADT_Dictionary__Dictionary)i1);
888 return (ADT_Dictionary__IterKeys)i0;
889 ;
890 }
891
ADT_Dictionary__IterKeysDesc_Next(ADT_Dictionary__IterKeys iter,Object__Object * key)892 OOC_CHAR8 ADT_Dictionary__IterKeysDesc_Next(ADT_Dictionary__IterKeys iter, Object__Object *key) {
893 register OOC_INT64 i0,i1,i2,i3,i4;
894 ADT_Dictionary__Dictionary d;
895 OOC_INT32 i;
896
897 i0 = (OOC_INT64)iter;
898 i1 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 17551));
899 d = (ADT_Dictionary__Dictionary)i1;
900 i2 = *(OOC_INT32*)((_check_pointer(i0, 17571))+8);
901 i = i2;
902 i3 = *(OOC_INT32*)((_check_pointer(i1, 17593))+8);
903 i3 = i2!=i3;
904 if (i3) goto l3;
905 i3=0u;
906 goto l5;
907 l3:
908 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 17610))+16);
909 i3 = _check_pointer(i3, 17616);
910 i4 = OOC_ARRAY_LENGTH(i3, 0);
911 i3 = (OOC_INT64)*(OOC_INT64*)((i3+((_check_index(i2, i4, OOC_UINT32, 17616))*24))+8);
912 i3 = ADT_Dictionary__IsSet((Object__Object)i3);
913 i3 = !i3;
914
915 l5:
916 if (!i3) goto l17;
917 l8_loop:
918 i2 = i2+1;
919 i = i2;
920 i3 = *(OOC_INT32*)((_check_pointer(i1, 17593))+8);
921 i3 = i2!=i3;
922 if (i3) goto l11;
923 i3=0u;
924 goto l13;
925 l11:
926 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 17610))+16);
927 i3 = _check_pointer(i3, 17616);
928 i4 = OOC_ARRAY_LENGTH(i3, 0);
929 i3 = (OOC_INT64)*(OOC_INT64*)((i3+((_check_index(i2, i4, OOC_UINT32, 17616))*24))+8);
930 i3 = ADT_Dictionary__IsSet((Object__Object)i3);
931 i3 = !i3;
932
933 l13:
934 if (i3) goto l8_loop;
935 l17:
936 i3 = *(OOC_INT32*)((_check_pointer(i1, 17664))+8);
937 i3 = i2==i3;
938 if (i3) goto l20;
939 *(OOC_INT32*)((_check_pointer(i0, 17736))+8) = (i2+1);
940 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 17763))+16);
941 i0 = _check_pointer(i0, 17769);
942 i1 = OOC_ARRAY_LENGTH(i0, 0);
943 i0 = (OOC_INT64)*(OOC_INT64*)((i0+((_check_index(i2, i1, OOC_UINT32, 17769))*24))+8);
944 *key = (Object__Object)i0;
945 return 1u;
946 goto l21;
947 l20:
948 *(OOC_INT32*)((_check_pointer(i0, 17686))+8) = i2;
949 return 0u;
950 l21:
951 _failed_function(17455); return 0;
952 ;
953 }
954
ADT_Dictionary__IterValuesDesc_INIT(ADT_Dictionary__IterValues iter,ADT_Dictionary__Dictionary dict)955 void ADT_Dictionary__IterValuesDesc_INIT(ADT_Dictionary__IterValues iter, ADT_Dictionary__Dictionary dict) {
956 register OOC_INT64 i0,i1;
957
958 i0 = (OOC_INT64)iter;
959 i1 = (OOC_INT64)dict;
960 *(OOC_INT64*)(_check_pointer(i0, 17904)) = i1;
961 *(OOC_INT32*)((_check_pointer(i0, 17927))+8) = 0;
962 return;
963 ;
964 }
965
ADT_Dictionary__DictionaryDesc_IterValues(ADT_Dictionary__Dictionary dict)966 ADT_Dictionary__IterValues ADT_Dictionary__DictionaryDesc_IterValues(ADT_Dictionary__Dictionary dict) {
967 register OOC_INT64 i0,i1;
968
969 i0 = (OOC_INT64)RT0__NewObject(_td__qtd9.baseTypes[0]);
970 i1 = (OOC_INT64)dict;
971 ADT_Dictionary__IterValuesDesc_INIT((ADT_Dictionary__IterValues)i0, (ADT_Dictionary__Dictionary)i1);
972 return (ADT_Dictionary__IterValues)i0;
973 ;
974 }
975
ADT_Dictionary__IterValuesDesc_Next(ADT_Dictionary__IterValues iter,Object__Object * value)976 OOC_CHAR8 ADT_Dictionary__IterValuesDesc_Next(ADT_Dictionary__IterValues iter, Object__Object *value) {
977 register OOC_INT64 i0,i1,i2,i3,i4;
978 ADT_Dictionary__Dictionary d;
979 OOC_INT32 i;
980
981 i0 = (OOC_INT64)iter;
982 i1 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 18616));
983 d = (ADT_Dictionary__Dictionary)i1;
984 i2 = *(OOC_INT32*)((_check_pointer(i0, 18636))+8);
985 i = i2;
986 i3 = *(OOC_INT32*)((_check_pointer(i1, 18658))+8);
987 i3 = i2!=i3;
988 if (i3) goto l3;
989 i3=0u;
990 goto l5;
991 l3:
992 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 18675))+16);
993 i3 = _check_pointer(i3, 18681);
994 i4 = OOC_ARRAY_LENGTH(i3, 0);
995 i3 = (OOC_INT64)*(OOC_INT64*)((i3+((_check_index(i2, i4, OOC_UINT32, 18681))*24))+8);
996 i3 = ADT_Dictionary__IsSet((Object__Object)i3);
997 i3 = !i3;
998
999 l5:
1000 if (!i3) goto l17;
1001 l8_loop:
1002 i2 = i2+1;
1003 i = i2;
1004 i3 = *(OOC_INT32*)((_check_pointer(i1, 18658))+8);
1005 i3 = i2!=i3;
1006 if (i3) goto l11;
1007 i3=0u;
1008 goto l13;
1009 l11:
1010 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 18675))+16);
1011 i3 = _check_pointer(i3, 18681);
1012 i4 = OOC_ARRAY_LENGTH(i3, 0);
1013 i3 = (OOC_INT64)*(OOC_INT64*)((i3+((_check_index(i2, i4, OOC_UINT32, 18681))*24))+8);
1014 i3 = ADT_Dictionary__IsSet((Object__Object)i3);
1015 i3 = !i3;
1016
1017 l13:
1018 if (i3) goto l8_loop;
1019 l17:
1020 i3 = *(OOC_INT32*)((_check_pointer(i1, 18729))+8);
1021 i3 = i2==i3;
1022 if (i3) goto l20;
1023 *(OOC_INT32*)((_check_pointer(i0, 18801))+8) = (i2+1);
1024 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 18830))+16);
1025 i0 = _check_pointer(i0, 18836);
1026 i1 = OOC_ARRAY_LENGTH(i0, 0);
1027 i0 = (OOC_INT64)*(OOC_INT64*)((i0+((_check_index(i2, i1, OOC_UINT32, 18836))*24))+16);
1028 *value = (Object__Object)i0;
1029 return 1u;
1030 goto l21;
1031 l20:
1032 *(OOC_INT32*)((_check_pointer(i0, 18751))+8) = i2;
1033 return 0u;
1034 l21:
1035 _failed_function(18518); return 0;
1036 ;
1037 }
1038
ADT_Dictionary__DummyDesc_Destroy(ADT_Dictionary__Dummy dummy)1039 void ADT_Dictionary__DummyDesc_Destroy(ADT_Dictionary__Dummy dummy) {
1040
1041 return;
1042 ;
1043 }
1044
OOC_ADT_Dictionary_init(void)1045 void OOC_ADT_Dictionary_init(void) {
1046
1047 ADT_Dictionary__dummy = (ADT_Dictionary__Dummy)((OOC_INT64)RT0__NewObject(_td_ADT_Dictionary__Dummy.baseTypes[0]));
1048 *(OOC_INT32*)((OOC_INT64)ADT_Dictionary__polys+(_check_index(0, 29, OOC_UINT8, 18973))*4) = 7;
1049 *(OOC_INT32*)((OOC_INT64)ADT_Dictionary__polys+(_check_index(1, 29, OOC_UINT8, 18994))*4) = 11;
1050 *(OOC_INT32*)((OOC_INT64)ADT_Dictionary__polys+(_check_index(2, 29, OOC_UINT8, 19015))*4) = 19;
1051 *(OOC_INT32*)((OOC_INT64)ADT_Dictionary__polys+(_check_index(3, 29, OOC_UINT8, 19037))*4) = 37;
1052 *(OOC_INT32*)((OOC_INT64)ADT_Dictionary__polys+(_check_index(4, 29, OOC_UINT8, 19059))*4) = 67;
1053 *(OOC_INT32*)((OOC_INT64)ADT_Dictionary__polys+(_check_index(5, 29, OOC_UINT8, 19081))*4) = 131;
1054 *(OOC_INT32*)((OOC_INT64)ADT_Dictionary__polys+(_check_index(6, 29, OOC_UINT8, 19104))*4) = 285;
1055 *(OOC_INT32*)((OOC_INT64)ADT_Dictionary__polys+(_check_index(7, 29, OOC_UINT8, 19128))*4) = 529;
1056 *(OOC_INT32*)((OOC_INT64)ADT_Dictionary__polys+(_check_index(8, 29, OOC_UINT8, 19152))*4) = 1033;
1057 *(OOC_INT32*)((OOC_INT64)ADT_Dictionary__polys+(_check_index(9, 29, OOC_UINT8, 19176))*4) = 2053;
1058 *(OOC_INT32*)((OOC_INT64)ADT_Dictionary__polys+(_check_index(10, 29, OOC_UINT8, 19200))*4) = 4179;
1059 *(OOC_INT32*)((OOC_INT64)ADT_Dictionary__polys+(_check_index(11, 29, OOC_UINT8, 19226))*4) = 8219;
1060 *(OOC_INT32*)((OOC_INT64)ADT_Dictionary__polys+(_check_index(12, 29, OOC_UINT8, 19252))*4) = 16427;
1061 *(OOC_INT32*)((OOC_INT64)ADT_Dictionary__polys+(_check_index(13, 29, OOC_UINT8, 19279))*4) = 32771;
1062 *(OOC_INT32*)((OOC_INT64)ADT_Dictionary__polys+(_check_index(14, 29, OOC_UINT8, 19305))*4) = 65581;
1063 *(OOC_INT32*)((OOC_INT64)ADT_Dictionary__polys+(_check_index(15, 29, OOC_UINT8, 19332))*4) = 131081;
1064 *(OOC_INT32*)((OOC_INT64)ADT_Dictionary__polys+(_check_index(16, 29, OOC_UINT8, 19359))*4) = 262183;
1065 *(OOC_INT32*)((OOC_INT64)ADT_Dictionary__polys+(_check_index(17, 29, OOC_UINT8, 19387))*4) = 524327;
1066 *(OOC_INT32*)((OOC_INT64)ADT_Dictionary__polys+(_check_index(18, 29, OOC_UINT8, 19415))*4) = 1048585;
1067 *(OOC_INT32*)((OOC_INT64)ADT_Dictionary__polys+(_check_index(19, 29, OOC_UINT8, 19443))*4) = 2097157;
1068 *(OOC_INT32*)((OOC_INT64)ADT_Dictionary__polys+(_check_index(20, 29, OOC_UINT8, 19471))*4) = 4194307;
1069 *(OOC_INT32*)((OOC_INT64)ADT_Dictionary__polys+(_check_index(21, 29, OOC_UINT8, 19499))*4) = 8388641;
1070 *(OOC_INT32*)((OOC_INT64)ADT_Dictionary__polys+(_check_index(22, 29, OOC_UINT8, 19528))*4) = 16777243;
1071 *(OOC_INT32*)((OOC_INT64)ADT_Dictionary__polys+(_check_index(23, 29, OOC_UINT8, 19558))*4) = 33554441;
1072 *(OOC_INT32*)((OOC_INT64)ADT_Dictionary__polys+(_check_index(24, 29, OOC_UINT8, 19587))*4) = 67108935;
1073 *(OOC_INT32*)((OOC_INT64)ADT_Dictionary__polys+(_check_index(25, 29, OOC_UINT8, 19617))*4) = 134217767;
1074 *(OOC_INT32*)((OOC_INT64)ADT_Dictionary__polys+(_check_index(26, 29, OOC_UINT8, 19648))*4) = 268435465;
1075 *(OOC_INT32*)((OOC_INT64)ADT_Dictionary__polys+(_check_index(27, 29, OOC_UINT8, 19678))*4) = 536870917;
1076 *(OOC_INT32*)((OOC_INT64)ADT_Dictionary__polys+(_check_index(28, 29, OOC_UINT8, 19708))*4) = 1073741907;
1077 return;
1078 ;
1079 }
1080
OOC_ADT_Dictionary_destroy(void)1081 void OOC_ADT_Dictionary_destroy(void) {
1082 }
1083
1084 /* --- */
1085