array I_nextFree155 integer I_firstFree165 integer I_maxIndex212 array I_typeId222 integer wurst_stack_depth701 array wurst_stack709 integer I_firstFree165 = 0 integer I_maxIndex212 = 0 integer wurst_stack_depth701 = 0 function initGlobals224() { } function main189() { initGlobals224(); init_test602("when calling init_test in as_argument, line 1"); } function config208() { } function init_test602(string __wurst_stackPos156) { local integer i1159 local integer i2618 wurst_stack_709[wurst_stack_depth_701] = __wurst_stackPos_156; wurst_stack_depth_701 = (wurst_stack_depth_701 + 1); i1_159 = new_B150("when calling new_B in as_argument, line 15"); i2_618 = new_C525("when calling new_C in as_argument, line 16"); wurst_stack_709[wurst_stack_depth_701] = "when calling test in as_argument, line 17"; wurst_stack_depth_701 = (wurst_stack_depth_701 + 1); if ((dispatch_I_test_I_foo627(i1_159, "when calling foo in as_argument, line 12") == 2) and (dispatch_I_test_I_foo627(i2_618, "when calling foo in as_argument, line 12") == 3)) { testSuccess836(); } else { }; wurst_stack_depth_701 = ((wurst_stack_depth_701 - 1) - 1); } IS_NATIVE function testSuccess836() { } function new_B150(string __wurst_stackPos620) returns integer { local integer this206 wurst_stack_709[wurst_stack_depth_701] = __wurst_stackPos_620; wurst_stack_depth_701 = (wurst_stack_depth_701 + 1); wurst_stack_709[wurst_stack_depth_701] = "when calling alloc_B in as_argument, line 5"; wurst_stack_depth_701 = (wurst_stack_depth_701 + 1); if (I_firstFree_165 == 0) { if (I_maxIndex_212 < 32768) { I_maxIndex_212 = (I_maxIndex_212 + 1); this_206 = I_maxIndex_212; I_typeId_222[this_206] = 2; } else { error169("Out of memory: Could not create B.", "when calling error in as_argument, line 5"); this_206 = 0; }; } else { I_firstFree_165 = (I_firstFree_165 - 1); this_206 = I_nextFree_155[I_firstFree_165]; I_typeId_222[this_206] = 2; }; wurst_stack_depth_701 = ((wurst_stack_depth_701 - 1) - 1); return this_206; } function new_C525(string __wurst_stackPos199) returns integer { local integer this145 wurst_stack_709[wurst_stack_depth_701] = __wurst_stackPos_199; wurst_stack_depth_701 = (wurst_stack_depth_701 + 1); wurst_stack_709[wurst_stack_depth_701] = "when calling alloc_C in as_argument, line 8"; wurst_stack_depth_701 = (wurst_stack_depth_701 + 1); if (I_firstFree_165 == 0) { if (I_maxIndex_212 < 32768) { I_maxIndex_212 = (I_maxIndex_212 + 1); this_145 = I_maxIndex_212; I_typeId_222[this_145] = 3; } else { error169("Out of memory: Could not create C.", "when calling error in as_argument, line 8"); this_145 = 0; }; } else { I_firstFree_165 = (I_firstFree_165 - 1); this_145 = I_nextFree_155[I_firstFree_165]; I_typeId_222[this_145] = 3; }; wurst_stack_depth_701 = ((wurst_stack_depth_701 - 1) - 1); return this_145; } function error169(string msg134, string __wurst_stackPos437) { local integer stacktraceIndex177 local integer stacktraceLimit150 wurst_stack_709[wurst_stack_depth_701] = __wurst_stackPos_437; wurst_stack_depth_701 = (wurst_stack_depth_701 + 1); __wurst_stackPos_437 = ""; stacktraceIndex_177 = wurst_stack_depth_701; stacktraceLimit_150 = 0; loop { stacktraceIndex_177 = (stacktraceIndex_177 - 1); stacktraceLimit_150 = (stacktraceLimit_150 + 1); exitwhen ((stacktraceLimit_150 > 20) or (stacktraceIndex_177 < 0)); __wurst_stackPos_437 = (__wurst_stackPos_437 + (" " + wurst_stack_709[stacktraceIndex_177])); }; $debugPrint170((msg_134 + (" " + __wurst_stackPos_437))); wurst_stack_depth_701 = (wurst_stack_depth_701 - 1); } function dispatch_I_test_I_foo627(integer this193, string __wurst_stackPos143) returns integer { wurst_stack_709[wurst_stack_depth_701] = __wurst_stackPos_143; wurst_stack_depth_701 = (wurst_stack_depth_701 + 1); if (I_typeId_222[this_193] == 0) { if (this_193 == 0) { error169("Nullpointer exception when calling I.foo", "when calling error in as_argument, line 4"); } else { error169("Called I.foo on invalid object.", "when calling error in as_argument, line 4"); }; } else { }; if (I_typeId_222[this_193] <= 2) { this_193 = 2; } else { this_193 = 3; }; wurst_stack_depth_701 = (wurst_stack_depth_701 - 1); return this_193; }