array I_nextFree288 integer I_firstFree304 integer I_maxIndex183 array I_typeId148 integer wurst_stack_depth838 array wurst_stack163 integer I_firstFree304 = 0 integer I_maxIndex183 = 0 integer wurst_stack_depth838 = 0 function initGlobals103() { } function main310() { initGlobals103(); init_test233("when calling init_test in as_argument, line 1"); } function config976() { } function init_test233(string __wurst_stackPos174) { local integer i1125 local integer i2102 wurst_stack_163[wurst_stack_depth_838] = __wurst_stackPos_174; wurst_stack_depth_838 = (wurst_stack_depth_838 + 1); i1_125 = new_B177("when calling new_B in as_argument, line 15"); i2_102 = new_C470("when calling new_C in as_argument, line 16"); wurst_stack_163[wurst_stack_depth_838] = "when calling test in as_argument, line 17"; wurst_stack_depth_838 = (wurst_stack_depth_838 + 1); if ((dispatch_I_test_I_foo201(i1_125, "when calling foo in as_argument, line 12") == 2) and (dispatch_I_test_I_foo201(i2_102, "when calling foo in as_argument, line 12") == 3)) { testSuccess159(); } else { }; wurst_stack_depth_838 = ((wurst_stack_depth_838 - 1) - 1); } IS_NATIVE function testSuccess159() { } function new_B177(string __wurst_stackPos205) returns integer { local integer this179 wurst_stack_163[wurst_stack_depth_838] = __wurst_stackPos_205; wurst_stack_depth_838 = (wurst_stack_depth_838 + 1); wurst_stack_163[wurst_stack_depth_838] = "when calling alloc_B in as_argument, line 5"; wurst_stack_depth_838 = (wurst_stack_depth_838 + 1); if (I_firstFree_304 == 0) { if (I_maxIndex_183 < 32768) { I_maxIndex_183 = (I_maxIndex_183 + 1); this_179 = I_maxIndex_183; I_typeId_148[this_179] = 2; } else { error142("Out of memory: Could not create B.", "when calling error in as_argument, line 5"); this_179 = 0; }; } else { I_firstFree_304 = (I_firstFree_304 - 1); this_179 = I_nextFree_288[I_firstFree_304]; I_typeId_148[this_179] = 2; }; wurst_stack_depth_838 = ((wurst_stack_depth_838 - 1) - 1); return this_179; } function new_C470(string __wurst_stackPos144) returns integer { local integer this666 wurst_stack_163[wurst_stack_depth_838] = __wurst_stackPos_144; wurst_stack_depth_838 = (wurst_stack_depth_838 + 1); wurst_stack_163[wurst_stack_depth_838] = "when calling alloc_C in as_argument, line 8"; wurst_stack_depth_838 = (wurst_stack_depth_838 + 1); if (I_firstFree_304 == 0) { if (I_maxIndex_183 < 32768) { I_maxIndex_183 = (I_maxIndex_183 + 1); this_666 = I_maxIndex_183; I_typeId_148[this_666] = 3; } else { error142("Out of memory: Could not create C.", "when calling error in as_argument, line 8"); this_666 = 0; }; } else { I_firstFree_304 = (I_firstFree_304 - 1); this_666 = I_nextFree_288[I_firstFree_304]; I_typeId_148[this_666] = 3; }; wurst_stack_depth_838 = ((wurst_stack_depth_838 - 1) - 1); return this_666; } function error142(string msg128, string __wurst_stackPos159) { local integer stacktraceIndex129 local integer stacktraceLimit106 wurst_stack_163[wurst_stack_depth_838] = __wurst_stackPos_159; wurst_stack_depth_838 = (wurst_stack_depth_838 + 1); __wurst_stackPos_159 = ""; stacktraceIndex_129 = wurst_stack_depth_838; stacktraceLimit_106 = 0; loop { stacktraceIndex_129 = (stacktraceIndex_129 - 1); stacktraceLimit_106 = (stacktraceLimit_106 + 1); exitwhen ((stacktraceLimit_106 > 20) or (stacktraceIndex_129 < 0)); __wurst_stackPos_159 = (__wurst_stackPos_159 + (" " + wurst_stack_163[stacktraceIndex_129])); }; $debugPrint848((msg_128 + (" " + __wurst_stackPos_159))); wurst_stack_depth_838 = (wurst_stack_depth_838 - 1); } function dispatch_I_test_I_foo201(integer this167, string __wurst_stackPos637) returns integer { wurst_stack_163[wurst_stack_depth_838] = __wurst_stackPos_637; wurst_stack_depth_838 = (wurst_stack_depth_838 + 1); if (I_typeId_148[this_167] == 0) { if (this_167 == 0) { error142("Nullpointer exception when calling I.foo", "when calling error in as_argument, line 4"); } else { error142("Called I.foo on invalid object.", "when calling error in as_argument, line 4"); }; } else { }; if (I_typeId_148[this_167] <= 2) { this_167 = 2; } else { this_167 = 3; }; wurst_stack_depth_838 = (wurst_stack_depth_838 - 1); return this_167; }