array I_nextFree183 integer I_firstFree176 integer I_maxIndex101 array I_typeId126 integer wurst_stack_depth336 array wurst_stack809 integer I_firstFree176 = 0 integer I_maxIndex101 = 0 integer wurst_stack_depth336 = 0 function initGlobals139() { } function main405() { initGlobals139(); init_test118("when calling init_test in as_argument, line 1"); } function config153() { } function init_test118(string __wurst_stackPos367) { local integer i1459 local integer i2382 wurst_stack_809[wurst_stack_depth_336] = __wurst_stackPos_367; wurst_stack_depth_336 = (wurst_stack_depth_336 + 1); i1_459 = new_B194("when calling new_B in as_argument, line 15"); i2_382 = new_C118("when calling new_C in as_argument, line 16"); wurst_stack_809[wurst_stack_depth_336] = "when calling test in as_argument, line 17"; wurst_stack_depth_336 = (wurst_stack_depth_336 + 1); if ((dispatch_I_test_I_foo157(i1_459, "when calling foo in as_argument, line 12") == 2) and (dispatch_I_test_I_foo157(i2_382, "when calling foo in as_argument, line 12") == 3)) { testSuccess938(); } else { }; wurst_stack_depth_336 = ((wurst_stack_depth_336 - 1) - 1); } IS_NATIVE function testSuccess938() { } function new_B194(string __wurst_stackPos886) returns integer { local integer this114 wurst_stack_809[wurst_stack_depth_336] = __wurst_stackPos_886; wurst_stack_depth_336 = (wurst_stack_depth_336 + 1); wurst_stack_809[wurst_stack_depth_336] = "when calling alloc_B in as_argument, line 5"; wurst_stack_depth_336 = (wurst_stack_depth_336 + 1); if (I_firstFree_176 == 0) { if (I_maxIndex_101 < 32768) { I_maxIndex_101 = (I_maxIndex_101 + 1); this_114 = I_maxIndex_101; I_typeId_126[this_114] = 2; } else { error995("Out of memory: Could not create B.", "when calling error in as_argument, line 5"); this_114 = 0; }; } else { I_firstFree_176 = (I_firstFree_176 - 1); this_114 = I_nextFree_183[I_firstFree_176]; I_typeId_126[this_114] = 2; }; wurst_stack_depth_336 = ((wurst_stack_depth_336 - 1) - 1); return this_114; } function new_C118(string __wurst_stackPos186) returns integer { local integer this182 wurst_stack_809[wurst_stack_depth_336] = __wurst_stackPos_186; wurst_stack_depth_336 = (wurst_stack_depth_336 + 1); wurst_stack_809[wurst_stack_depth_336] = "when calling alloc_C in as_argument, line 8"; wurst_stack_depth_336 = (wurst_stack_depth_336 + 1); if (I_firstFree_176 == 0) { if (I_maxIndex_101 < 32768) { I_maxIndex_101 = (I_maxIndex_101 + 1); this_182 = I_maxIndex_101; I_typeId_126[this_182] = 3; } else { error995("Out of memory: Could not create C.", "when calling error in as_argument, line 8"); this_182 = 0; }; } else { I_firstFree_176 = (I_firstFree_176 - 1); this_182 = I_nextFree_183[I_firstFree_176]; I_typeId_126[this_182] = 3; }; wurst_stack_depth_336 = ((wurst_stack_depth_336 - 1) - 1); return this_182; } function error995(string msg849, string __wurst_stackPos362) { local integer stacktraceIndex251 local integer stacktraceLimit172 wurst_stack_809[wurst_stack_depth_336] = __wurst_stackPos_362; wurst_stack_depth_336 = (wurst_stack_depth_336 + 1); __wurst_stackPos_362 = ""; stacktraceIndex_251 = wurst_stack_depth_336; stacktraceLimit_172 = 0; loop { stacktraceIndex_251 = (stacktraceIndex_251 - 1); stacktraceLimit_172 = (stacktraceLimit_172 + 1); exitwhen ((stacktraceLimit_172 > 20) or (stacktraceIndex_251 < 0)); __wurst_stackPos_362 = (__wurst_stackPos_362 + (" " + wurst_stack_809[stacktraceIndex_251])); }; $debugPrint455((msg_849 + (" " + __wurst_stackPos_362))); wurst_stack_depth_336 = (wurst_stack_depth_336 - 1); } function dispatch_I_test_I_foo157(integer this527, string __wurst_stackPos147) returns integer { wurst_stack_809[wurst_stack_depth_336] = __wurst_stackPos_147; wurst_stack_depth_336 = (wurst_stack_depth_336 + 1); if (I_typeId_126[this_527] == 0) { if (this_527 == 0) { error995("Nullpointer exception when calling I.foo", "when calling error in as_argument, line 4"); } else { error995("Called I.foo on invalid object.", "when calling error in as_argument, line 4"); }; } else { }; if (I_typeId_126[this_527] <= 2) { this_527 = 2; } else { this_527 = 3; }; wurst_stack_depth_336 = (wurst_stack_depth_336 - 1); return this_527; }