syntax: extends 'as' and 'isa' warning to nullable
[nit.git] / c_src / sorter._sep.c
1 /* This C file is generated by NIT to compile module sorter. */
2 #include "sorter._sep.h"
3 val_t sorter___AbstractSorter___compare(val_t self, val_t param0, val_t param1) {
4 struct trace_t trace = {NULL, NULL, 22, LOCATE_sorter___AbstractSorter___compare};
5 val_t *variable = NULL;
6 void **closurevariable = NULL;
7 trace.prev = tracehead; tracehead = &trace;
8 trace.file = LOCATE_sorter;
9 fprintf(stderr, "Deferred method called");
10 fprintf(stderr, " (%s:%d)\n", LOCATE_sorter, 22);
11 nit_exit(1);
12 tracehead = trace.prev;
13 return NIT_NULL;
14 }
15 void sorter___AbstractSorter___sort(val_t self, val_t param0) {
16 struct trace_t trace = {NULL, NULL, 29, LOCATE_sorter___AbstractSorter___sort};
17 val_t variable[5];
18 void **closurevariable = NULL;
19 trace.prev = tracehead; tracehead = &trace;
20 trace.file = LOCATE_sorter;
21 variable[0] = self;
22 variable[1] = param0;
23 variable[3] = variable[0];
24 variable[4] = CALL_abstract_collection___Collection___length( variable[1] /*array*/)( variable[1] /*array*/) /*AbstractArray::length*/;
25 variable[4] = TAG_Int(UNTAG_Int(variable[4])-UNTAG_Int( TAG_Int(1)));
26 CALL_sorter___AbstractSorter___sub_sort(variable[3])(variable[3], variable[1] /*array*/, TAG_Int(0), variable[4]) /*AbstractSorter::sub_sort*/;
27 return_label0: while(false);
28 tracehead = trace.prev;
29 return;
30 }
31 void sorter___AbstractSorter___sub_sort(val_t self, val_t param0, val_t param1, val_t param2) {
32 struct trace_t trace = {NULL, NULL, 32, LOCATE_sorter___AbstractSorter___sub_sort};
33 val_t variable[6];
34 void **closurevariable = NULL;
35 trace.prev = tracehead; tracehead = &trace;
36 trace.file = LOCATE_sorter;
37 variable[0] = self;
38 variable[1] = param0;
39 variable[2] = param1;
40 variable[3] = param2;
41 variable[5] = TAG_Bool(UNTAG_Int( variable[2] /*from*/)>=UNTAG_Int( variable[3] /*to*/));
42 if (UNTAG_Bool(variable[5])) { /*if*/
43 goto return_label1;
44 } else { /*if*/
45 variable[5] = TAG_Int(UNTAG_Int( variable[2] /*from*/)+UNTAG_Int( TAG_Int(7)));
46 variable[5] = TAG_Bool(UNTAG_Int(variable[5])<UNTAG_Int( variable[3] /*to*/));
47 if (UNTAG_Bool(variable[5])) { /*if*/
48 variable[5] = variable[0];
49 CALL_sorter___AbstractSorter___quick_sort(variable[5])(variable[5], variable[1] /*array*/, variable[2] /*from*/, variable[3] /*to*/) /*AbstractSorter::quick_sort*/;
50 } else { /*if*/
51 variable[5] = variable[0];
52 CALL_sorter___AbstractSorter___bubble_sort(variable[5])(variable[5], variable[1] /*array*/, variable[2] /*from*/, variable[3] /*to*/) /*AbstractSorter::bubble_sort*/;
53 }
54 }
55 return_label1: while(false);
56 tracehead = trace.prev;
57 return;
58 }
59 void sorter___AbstractSorter___quick_sort(val_t self, val_t param0, val_t param1, val_t param2) {
60 struct trace_t trace = {NULL, NULL, 44, LOCATE_sorter___AbstractSorter___quick_sort};
61 val_t variable[15];
62 void **closurevariable = NULL;
63 trace.prev = tracehead; tracehead = &trace;
64 trace.file = LOCATE_sorter;
65 variable[0] = self;
66 variable[1] = param0;
67 variable[2] = param1;
68 variable[3] = param2;
69 variable[6] = variable[1] /*array*/;
70 variable[7] = variable[2] /*from*/;
71 variable[9] = TAG_Bool(UNTAG_Int( variable[7] /*index*/)>=UNTAG_Int( TAG_Int(0)));
72 variable[10] = variable[9];
73 if (UNTAG_Bool(variable[10])) { /* and */
74 variable[10] = variable[6];
75 variable[10] = ATTR_array___AbstractArray____length(variable[10]) /*AbstractArray::_length*/;
76 variable[10] = TAG_Bool(UNTAG_Int( variable[7] /*index*/)<UNTAG_Int(variable[10]));
77 }
78 variable[9] = variable[10];
79 if (!UNTAG_Bool(variable[9])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_sorter, 229); nit_exit(1);}
80 variable[9] = variable[6];
81 variable[9] = ATTR_array___Array____items(variable[9]) /*Array::_items*/;
82 variable[9] = UNBOX_NativeArray(variable[9])[UNTAG_Int( variable[7] /*index*/)];
83 variable[8] = variable[9];
84 goto return_label3;
85 return_label3: while(false);
86 variable[6] = variable[8];
87 variable[5] = variable[6];
88 variable[6] = variable[2] /*from*/;
89 variable[7] = variable[3] /*to*/;
90 while (true) { /*while*/
91 variable[8] = TAG_Bool(UNTAG_Int( variable[7] /*j*/)>UNTAG_Int( variable[6] /*i*/));
92 if (!UNTAG_Bool(variable[8])) break; /* while*/
93 while (true) { /*while*/
94 variable[8] = TAG_Bool(UNTAG_Int( variable[6] /*i*/)<=UNTAG_Int( variable[3] /*to*/));
95 variable[9] = variable[8];
96 if (UNTAG_Bool(variable[9])) { /* and */
97 variable[9] = variable[0];
98 variable[10] = variable[1] /*array*/;
99 variable[11] = variable[6] /*i*/;
100 variable[13] = TAG_Bool(UNTAG_Int( variable[11] /*index*/)>=UNTAG_Int( TAG_Int(0)));
101 variable[14] = variable[13];
102 if (UNTAG_Bool(variable[14])) { /* and */
103 variable[14] = variable[10];
104 variable[14] = ATTR_array___AbstractArray____length(variable[14]) /*AbstractArray::_length*/;
105 variable[14] = TAG_Bool(UNTAG_Int( variable[11] /*index*/)<UNTAG_Int(variable[14]));
106 }
107 variable[13] = variable[14];
108 if (!UNTAG_Bool(variable[13])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_sorter, 229); nit_exit(1);}
109 variable[13] = variable[10];
110 variable[13] = ATTR_array___Array____items(variable[13]) /*Array::_items*/;
111 variable[13] = UNBOX_NativeArray(variable[13])[UNTAG_Int( variable[11] /*index*/)];
112 variable[12] = variable[13];
113 goto return_label6;
114 return_label6: while(false);
115 variable[10] = variable[12];
116 variable[9] = CALL_sorter___AbstractSorter___compare(variable[9])(variable[9], variable[10], variable[5] /*pivot*/) /*AbstractSorter::compare*/;
117 variable[9] = TAG_Bool(UNTAG_Int(variable[9])<=UNTAG_Int( TAG_Int(0)));
118 }
119 variable[8] = variable[9];
120 if (!UNTAG_Bool(variable[8])) break; /* while*/
121 variable[6] = TAG_Int(UNTAG_Int(variable[6])+UNTAG_Int( TAG_Int(1))) /*i*/;
122 continue_5: while(0);
123 }
124 break_5: while(0);
125 while (true) { /*while*/
126 variable[8] = TAG_Bool(UNTAG_Int( variable[7] /*j*/)>UNTAG_Int( variable[6] /*i*/));
127 variable[9] = variable[8];
128 if (UNTAG_Bool(variable[9])) { /* and */
129 variable[9] = variable[0];
130 variable[10] = variable[1] /*array*/;
131 variable[11] = variable[7] /*j*/;
132 variable[13] = TAG_Bool(UNTAG_Int( variable[11] /*index*/)>=UNTAG_Int( TAG_Int(0)));
133 variable[14] = variable[13];
134 if (UNTAG_Bool(variable[14])) { /* and */
135 variable[14] = variable[10];
136 variable[14] = ATTR_array___AbstractArray____length(variable[14]) /*AbstractArray::_length*/;
137 variable[14] = TAG_Bool(UNTAG_Int( variable[11] /*index*/)<UNTAG_Int(variable[14]));
138 }
139 variable[13] = variable[14];
140 if (!UNTAG_Bool(variable[13])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_sorter, 229); nit_exit(1);}
141 variable[13] = variable[10];
142 variable[13] = ATTR_array___Array____items(variable[13]) /*Array::_items*/;
143 variable[13] = UNBOX_NativeArray(variable[13])[UNTAG_Int( variable[11] /*index*/)];
144 variable[12] = variable[13];
145 goto return_label8;
146 return_label8: while(false);
147 variable[10] = variable[12];
148 variable[9] = CALL_sorter___AbstractSorter___compare(variable[9])(variable[9], variable[10], variable[5] /*pivot*/) /*AbstractSorter::compare*/;
149 variable[9] = TAG_Bool(UNTAG_Int(variable[9])>=UNTAG_Int( TAG_Int(0)));
150 }
151 variable[8] = variable[9];
152 if (!UNTAG_Bool(variable[8])) break; /* while*/
153 variable[7] = TAG_Int(UNTAG_Int(variable[7])-UNTAG_Int( TAG_Int(1))) /*j*/;
154 continue_7: while(0);
155 }
156 break_7: while(0);
157 variable[8] = TAG_Bool(UNTAG_Int( variable[7] /*j*/)>UNTAG_Int( variable[6] /*i*/));
158 if (UNTAG_Bool(variable[8])) { /*if*/
159 variable[9] = variable[1] /*array*/;
160 variable[10] = variable[6] /*i*/;
161 variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
162 variable[13] = variable[12];
163 if (UNTAG_Bool(variable[13])) { /* and */
164 variable[13] = variable[9];
165 variable[13] = ATTR_array___AbstractArray____length(variable[13]) /*AbstractArray::_length*/;
166 variable[13] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[13]));
167 }
168 variable[12] = variable[13];
169 if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_sorter, 229); nit_exit(1);}
170 variable[12] = variable[9];
171 variable[12] = ATTR_array___Array____items(variable[12]) /*Array::_items*/;
172 variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
173 variable[11] = variable[12];
174 goto return_label9;
175 return_label9: while(false);
176 variable[9] = variable[11];
177 variable[8] = variable[9];
178 variable[9] = variable[1] /*array*/;
179 variable[10] = variable[7] /*j*/;
180 variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
181 variable[13] = variable[12];
182 if (UNTAG_Bool(variable[13])) { /* and */
183 variable[13] = variable[9];
184 variable[13] = ATTR_array___AbstractArray____length(variable[13]) /*AbstractArray::_length*/;
185 variable[13] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[13]));
186 }
187 variable[12] = variable[13];
188 if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_sorter, 229); nit_exit(1);}
189 variable[12] = variable[9];
190 variable[12] = ATTR_array___Array____items(variable[12]) /*Array::_items*/;
191 variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
192 variable[11] = variable[12];
193 goto return_label10;
194 return_label10: while(false);
195 variable[9] = variable[11];
196 CALL_abstract_collection___Map_____braeq( variable[1] /*array*/)( variable[1] /*array*/, variable[6] /*i*/, variable[9]) /*Array::[]=*/;
197 CALL_abstract_collection___Map_____braeq( variable[1] /*array*/)( variable[1] /*array*/, variable[7] /*j*/, variable[8] /*t*/) /*Array::[]=*/;
198 }
199 continue_4: while(0);
200 }
201 break_4: while(0);
202 variable[8] = TAG_Int(UNTAG_Int( variable[6] /*i*/)-UNTAG_Int( TAG_Int(1)));
203 variable[9] = variable[1] /*array*/;
204 variable[10] = variable[8];
205 variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
206 variable[13] = variable[12];
207 if (UNTAG_Bool(variable[13])) { /* and */
208 variable[13] = variable[9];
209 variable[13] = ATTR_array___AbstractArray____length(variable[13]) /*AbstractArray::_length*/;
210 variable[13] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[13]));
211 }
212 variable[12] = variable[13];
213 if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_sorter, 229); nit_exit(1);}
214 variable[12] = variable[9];
215 variable[12] = ATTR_array___Array____items(variable[12]) /*Array::_items*/;
216 variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
217 variable[11] = variable[12];
218 goto return_label11;
219 return_label11: while(false);
220 variable[8] = variable[11];
221 CALL_abstract_collection___Map_____braeq( variable[1] /*array*/)( variable[1] /*array*/, variable[2] /*from*/, variable[8]) /*Array::[]=*/;
222 variable[8] = TAG_Int(UNTAG_Int( variable[6] /*i*/)-UNTAG_Int( TAG_Int(1)));
223 CALL_abstract_collection___Map_____braeq( variable[1] /*array*/)( variable[1] /*array*/, variable[8], variable[5] /*pivot*/) /*Array::[]=*/;
224 variable[8] = variable[0];
225 variable[9] = TAG_Int(UNTAG_Int( variable[6] /*i*/)-UNTAG_Int( TAG_Int(2)));
226 CALL_sorter___AbstractSorter___sub_sort(variable[8])(variable[8], variable[1] /*array*/, variable[2] /*from*/, variable[9]) /*AbstractSorter::sub_sort*/;
227 variable[8] = variable[0];
228 CALL_sorter___AbstractSorter___sub_sort(variable[8])(variable[8], variable[1] /*array*/, variable[6] /*i*/, variable[3] /*to*/) /*AbstractSorter::sub_sort*/;
229 return_label2: while(false);
230 tracehead = trace.prev;
231 return;
232 }
233 void sorter___AbstractSorter___bubble_sort(val_t self, val_t param0, val_t param1, val_t param2) {
234 struct trace_t trace = {NULL, NULL, 65, LOCATE_sorter___AbstractSorter___bubble_sort};
235 val_t variable[15];
236 void **closurevariable = NULL;
237 trace.prev = tracehead; tracehead = &trace;
238 trace.file = LOCATE_sorter;
239 variable[0] = self;
240 variable[1] = param0;
241 variable[2] = param1;
242 variable[3] = param2;
243 variable[5] = variable[2] /*from*/;
244 while (true) { /*while*/
245 variable[6] = TAG_Bool(UNTAG_Int( variable[5] /*i*/)<UNTAG_Int( variable[3] /*to*/));
246 if (!UNTAG_Bool(variable[6])) break; /* while*/
247 variable[6] = variable[5] /*i*/;
248 variable[8] = variable[1] /*array*/;
249 variable[9] = variable[5] /*i*/;
250 variable[11] = TAG_Bool(UNTAG_Int( variable[9] /*index*/)>=UNTAG_Int( TAG_Int(0)));
251 variable[12] = variable[11];
252 if (UNTAG_Bool(variable[12])) { /* and */
253 variable[12] = variable[8];
254 variable[12] = ATTR_array___AbstractArray____length(variable[12]) /*AbstractArray::_length*/;
255 variable[12] = TAG_Bool(UNTAG_Int( variable[9] /*index*/)<UNTAG_Int(variable[12]));
256 }
257 variable[11] = variable[12];
258 if (!UNTAG_Bool(variable[11])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_sorter, 229); nit_exit(1);}
259 variable[11] = variable[8];
260 variable[11] = ATTR_array___Array____items(variable[11]) /*Array::_items*/;
261 variable[11] = UNBOX_NativeArray(variable[11])[UNTAG_Int( variable[9] /*index*/)];
262 variable[10] = variable[11];
263 goto return_label14;
264 return_label14: while(false);
265 variable[8] = variable[10];
266 variable[7] = variable[8];
267 variable[8] = variable[5] /*i*/;
268 while (true) { /*while*/
269 variable[9] = TAG_Bool(UNTAG_Int( variable[8] /*j*/)<=UNTAG_Int( variable[3] /*to*/));
270 if (!UNTAG_Bool(variable[9])) break; /* while*/
271 variable[9] = variable[0];
272 variable[10] = variable[1] /*array*/;
273 variable[11] = variable[8] /*j*/;
274 variable[13] = TAG_Bool(UNTAG_Int( variable[11] /*index*/)>=UNTAG_Int( TAG_Int(0)));
275 variable[14] = variable[13];
276 if (UNTAG_Bool(variable[14])) { /* and */
277 variable[14] = variable[10];
278 variable[14] = ATTR_array___AbstractArray____length(variable[14]) /*AbstractArray::_length*/;
279 variable[14] = TAG_Bool(UNTAG_Int( variable[11] /*index*/)<UNTAG_Int(variable[14]));
280 }
281 variable[13] = variable[14];
282 if (!UNTAG_Bool(variable[13])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_sorter, 229); nit_exit(1);}
283 variable[13] = variable[10];
284 variable[13] = ATTR_array___Array____items(variable[13]) /*Array::_items*/;
285 variable[13] = UNBOX_NativeArray(variable[13])[UNTAG_Int( variable[11] /*index*/)];
286 variable[12] = variable[13];
287 goto return_label16;
288 return_label16: while(false);
289 variable[10] = variable[12];
290 variable[9] = CALL_sorter___AbstractSorter___compare(variable[9])(variable[9], variable[7] /*min_v*/, variable[10]) /*AbstractSorter::compare*/;
291 variable[9] = TAG_Bool(UNTAG_Int(variable[9])>UNTAG_Int( TAG_Int(0)));
292 if (UNTAG_Bool(variable[9])) { /*if*/
293 variable[6] = variable[8] /*j*/ /*min=*/;
294 variable[9] = variable[1] /*array*/;
295 variable[10] = variable[8] /*j*/;
296 variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
297 variable[13] = variable[12];
298 if (UNTAG_Bool(variable[13])) { /* and */
299 variable[13] = variable[9];
300 variable[13] = ATTR_array___AbstractArray____length(variable[13]) /*AbstractArray::_length*/;
301 variable[13] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[13]));
302 }
303 variable[12] = variable[13];
304 if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_sorter, 229); nit_exit(1);}
305 variable[12] = variable[9];
306 variable[12] = ATTR_array___Array____items(variable[12]) /*Array::_items*/;
307 variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
308 variable[11] = variable[12];
309 goto return_label17;
310 return_label17: while(false);
311 variable[9] = variable[11];
312 variable[7] = variable[9] /*min_v=*/;
313 }
314 variable[8] = TAG_Int(UNTAG_Int(variable[8])+UNTAG_Int( TAG_Int(1))) /*j*/;
315 continue_15: while(0);
316 }
317 break_15: while(0);
318 variable[9] = TAG_Bool(( variable[6] /*min*/)!=( variable[5] /*i*/));
319 if (UNTAG_Bool(variable[9])) { /*if*/
320 variable[9] = variable[1] /*array*/;
321 variable[10] = variable[5] /*i*/;
322 variable[12] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)>=UNTAG_Int( TAG_Int(0)));
323 variable[13] = variable[12];
324 if (UNTAG_Bool(variable[13])) { /* and */
325 variable[13] = variable[9];
326 variable[13] = ATTR_array___AbstractArray____length(variable[13]) /*AbstractArray::_length*/;
327 variable[13] = TAG_Bool(UNTAG_Int( variable[10] /*index*/)<UNTAG_Int(variable[13]));
328 }
329 variable[12] = variable[13];
330 if (!UNTAG_Bool(variable[12])) { fprintf(stderr, "Assert%s failed", " 'index' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_array___Array_____bra, LOCATE_sorter, 229); nit_exit(1);}
331 variable[12] = variable[9];
332 variable[12] = ATTR_array___Array____items(variable[12]) /*Array::_items*/;
333 variable[12] = UNBOX_NativeArray(variable[12])[UNTAG_Int( variable[10] /*index*/)];
334 variable[11] = variable[12];
335 goto return_label18;
336 return_label18: while(false);
337 variable[9] = variable[11];
338 CALL_abstract_collection___Map_____braeq( variable[1] /*array*/)( variable[1] /*array*/, variable[6] /*min*/, variable[9]) /*Array::[]=*/;
339 CALL_abstract_collection___Map_____braeq( variable[1] /*array*/)( variable[1] /*array*/, variable[5] /*i*/, variable[7] /*min_v*/) /*Array::[]=*/;
340 }
341 variable[5] = TAG_Int(UNTAG_Int(variable[5])+UNTAG_Int( TAG_Int(1))) /*i*/;
342 continue_13: while(0);
343 }
344 break_13: while(0);
345 return_label12: while(false);
346 tracehead = trace.prev;
347 return;
348 }
349 void sorter___AbstractSorter___init(val_t self, int* init_table) {
350 struct trace_t trace = {NULL, NULL, 0, LOCATE_sorter___AbstractSorter___init};
351 val_t *variable = NULL;
352 void **closurevariable = NULL;
353 trace.prev = tracehead; tracehead = &trace;
354 trace.file = LOCATE_sorter;
355 tracehead = trace.prev;
356 return;
357 }
358 val_t sorter___ComparableSorter___compare(val_t self, val_t param0, val_t param1) {
359 struct trace_t trace = {NULL, NULL, 93, LOCATE_sorter___ComparableSorter___compare};
360 val_t variable[5];
361 void **closurevariable = NULL;
362 trace.prev = tracehead; tracehead = &trace;
363 trace.file = LOCATE_sorter;
364 variable[0] = self;
365 variable[1] = param0;
366 variable[2] = param1;
367 variable[4] = CALL_kernel___Comparable_____leqg( variable[1] /*a*/)( variable[1] /*a*/, variable[2] /*b*/) /*Comparable::<=>*/;
368 variable[3] = variable[4];
369 goto return_label19;
370 return_label19: while(false);
371 tracehead = trace.prev;
372 return variable[3];
373 }
374 void sorter___ComparableSorter___init(val_t self, int* init_table) {
375 struct trace_t trace = {NULL, NULL, 96, LOCATE_sorter___ComparableSorter___init};
376 val_t variable[2];
377 void **closurevariable = NULL;
378 trace.prev = tracehead; tracehead = &trace;
379 trace.file = LOCATE_sorter;
380 variable[0] = self;
381 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ComparableSorter].i]) return;
382 return_label20: while(false);
383 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ComparableSorter].i] = 1;
384 tracehead = trace.prev;
385 return;
386 }