integer test_x799 array B_nextFree131 integer B_firstFree650 integer B_maxIndex791 array B_typeId204 array B_y493 integer wurst_stack_depth133 array wurst_stack638 integer test_x799 = 2 integer B_firstFree650 = 0 integer B_maxIndex791 = 0 integer wurst_stack_depth133 = 0 function initGlobals259() { } function main152() { initGlobals259(); init_test101("when calling init_test in ondestroyUsingThis, line 1"); } function config185() { } function init_test101(string __wurst_stackPos169) { local integer a248 wurst_stack_638[wurst_stack_depth_133] = __wurst_stackPos_169; wurst_stack_depth_133 = (wurst_stack_depth_133 + 1); test_x_799 = 2; a_248 = new_A173("when calling new_A in ondestroyUsingThis, line 12"); wurst_stack_638[wurst_stack_depth_133] = "when calling dispatch_A_destroyA in ondestroyUsingThis, line 13"; wurst_stack_depth_133 = (wurst_stack_depth_133 + 1); if (B_typeId_204[a_248] == 0) { if (a_248 == 0) { error191("Nullpointer exception when calling A.A", "when calling error in ondestroyUsingThis, line 8"); } else { error191("Called A.A on invalid object.", "when calling error in ondestroyUsingThis, line 8"); }; } else { }; destroyA101(a_248, "when calling destroyA in ondestroyUsingThis, line 8"); wurst_stack_depth_133 = (wurst_stack_depth_133 - 1); if (test_x_799 == 8) { testSuccess427(); } else { }; wurst_stack_depth_133 = (wurst_stack_depth_133 - 1); } IS_NATIVE function testSuccess427() { } function destroyA101(integer this161, string __wurst_stackPos417) { wurst_stack_638[wurst_stack_depth_133] = __wurst_stackPos_417; wurst_stack_depth_133 = (wurst_stack_depth_133 + 1); test_x_799 = ((test_x_799 + B_y_493[this_161]) * B_y_493[this_161]); wurst_stack_638[wurst_stack_depth_133] = "when calling dealloc_A in ondestroyUsingThis, line 9"; wurst_stack_depth_133 = (wurst_stack_depth_133 + 1); if (B_typeId_204[this_161] == 0) { error191("Double free: object of type A", "when calling error in ondestroyUsingThis, line 8"); } else { B_nextFree_131[B_firstFree_650] = this_161; B_firstFree_650 = (B_firstFree_650 + 1); B_typeId_204[this_161] = 0; }; wurst_stack_depth_133 = ((wurst_stack_depth_133 - 1) - 1); } function new_A173(string __wurst_stackPos186) returns integer { local integer this763 wurst_stack_638[wurst_stack_depth_133] = __wurst_stackPos_186; wurst_stack_depth_133 = (wurst_stack_depth_133 + 1); wurst_stack_638[wurst_stack_depth_133] = "when calling alloc_A in ondestroyUsingThis, line 8"; wurst_stack_depth_133 = (wurst_stack_depth_133 + 1); if (B_firstFree_650 == 0) { if (B_maxIndex_791 < 32768) { B_maxIndex_791 = (B_maxIndex_791 + 1); this_763 = B_maxIndex_791; B_typeId_204[this_763] = 2; } else { error191("Out of memory: Could not create A.", "when calling error in ondestroyUsingThis, line 8"); this_763 = 0; }; } else { B_firstFree_650 = (B_firstFree_650 - 1); this_763 = B_nextFree_131[B_firstFree_650]; B_typeId_204[this_763] = 2; }; wurst_stack_depth_133 = (wurst_stack_depth_133 - 1); B_y_493[this_763] = 2; wurst_stack_depth_133 = (wurst_stack_depth_133 - 1); return this_763; } function error191(string msg820, string __wurst_stackPos120) { local integer stacktraceIndex103 local integer stacktraceLimit157 wurst_stack_638[wurst_stack_depth_133] = __wurst_stackPos_120; wurst_stack_depth_133 = (wurst_stack_depth_133 + 1); __wurst_stackPos_120 = ""; stacktraceIndex_103 = wurst_stack_depth_133; stacktraceLimit_157 = 0; loop { stacktraceIndex_103 = (stacktraceIndex_103 - 1); stacktraceLimit_157 = (stacktraceLimit_157 + 1); exitwhen ((stacktraceLimit_157 > 20) or (stacktraceIndex_103 < 0)); __wurst_stackPos_120 = (__wurst_stackPos_120 + (" " + wurst_stack_638[stacktraceIndex_103])); }; $debugPrint190((msg_820 + (" " + __wurst_stackPos_120))); wurst_stack_depth_133 = (wurst_stack_depth_133 - 1); }