integer test_x971 array B_nextFree623 integer B_firstFree164 integer B_maxIndex252 array B_typeId733 array B_y208 integer wurst_stack_depth194 array wurst_stack468 integer test_x971 = 2 integer B_firstFree164 = 0 integer B_maxIndex252 = 0 integer wurst_stack_depth194 = 0 function initGlobals125() { } function main159() { initGlobals125(); init_test629("when calling init_test in ondestroyUsingThis, line 1"); } function config525() { } function init_test629(string __wurst_stackPos793) { local integer a525 wurst_stack_468[wurst_stack_depth_194] = __wurst_stackPos_793; wurst_stack_depth_194 = (wurst_stack_depth_194 + 1); test_x_971 = 2; a_525 = new_A824("when calling new_A in ondestroyUsingThis, line 12"); wurst_stack_468[wurst_stack_depth_194] = "when calling dispatch_A_destroyA in ondestroyUsingThis, line 13"; wurst_stack_depth_194 = (wurst_stack_depth_194 + 1); if (B_typeId_733[a_525] == 0) { if (a_525 == 0) { error909("Nullpointer exception when calling A.A", "when calling error in ondestroyUsingThis, line 8"); } else { error909("Called A.A on invalid object.", "when calling error in ondestroyUsingThis, line 8"); }; } else { }; destroyA294(a_525, "when calling destroyA in ondestroyUsingThis, line 8"); wurst_stack_depth_194 = (wurst_stack_depth_194 - 1); if (test_x_971 == 8) { testSuccess172(); } else { }; wurst_stack_depth_194 = (wurst_stack_depth_194 - 1); } IS_NATIVE function testSuccess172() { } function destroyA294(integer this477, string __wurst_stackPos730) { wurst_stack_468[wurst_stack_depth_194] = __wurst_stackPos_730; wurst_stack_depth_194 = (wurst_stack_depth_194 + 1); test_x_971 = ((test_x_971 + B_y_208[this_477]) * B_y_208[this_477]); wurst_stack_468[wurst_stack_depth_194] = "when calling dealloc_A in ondestroyUsingThis, line 9"; wurst_stack_depth_194 = (wurst_stack_depth_194 + 1); if (B_typeId_733[this_477] == 0) { error909("Double free: object of type A", "when calling error in ondestroyUsingThis, line 8"); } else { B_nextFree_623[B_firstFree_164] = this_477; B_firstFree_164 = (B_firstFree_164 + 1); B_typeId_733[this_477] = 0; }; wurst_stack_depth_194 = ((wurst_stack_depth_194 - 1) - 1); } function new_A824(string __wurst_stackPos170) returns integer { local integer this208 wurst_stack_468[wurst_stack_depth_194] = __wurst_stackPos_170; wurst_stack_depth_194 = (wurst_stack_depth_194 + 1); wurst_stack_468[wurst_stack_depth_194] = "when calling alloc_A in ondestroyUsingThis, line 8"; wurst_stack_depth_194 = (wurst_stack_depth_194 + 1); if (B_firstFree_164 == 0) { if (B_maxIndex_252 < 32768) { B_maxIndex_252 = (B_maxIndex_252 + 1); this_208 = B_maxIndex_252; B_typeId_733[this_208] = 2; } else { error909("Out of memory: Could not create A.", "when calling error in ondestroyUsingThis, line 8"); this_208 = 0; }; } else { B_firstFree_164 = (B_firstFree_164 - 1); this_208 = B_nextFree_623[B_firstFree_164]; B_typeId_733[this_208] = 2; }; wurst_stack_depth_194 = (wurst_stack_depth_194 - 1); B_y_208[this_208] = 2; wurst_stack_depth_194 = (wurst_stack_depth_194 - 1); return this_208; } function error909(string msg333, string __wurst_stackPos794) { local integer stacktraceIndex195 local integer stacktraceLimit424 wurst_stack_468[wurst_stack_depth_194] = __wurst_stackPos_794; wurst_stack_depth_194 = (wurst_stack_depth_194 + 1); __wurst_stackPos_794 = ""; stacktraceIndex_195 = wurst_stack_depth_194; stacktraceLimit_424 = 0; loop { stacktraceIndex_195 = (stacktraceIndex_195 - 1); stacktraceLimit_424 = (stacktraceLimit_424 + 1); exitwhen ((stacktraceLimit_424 > 20) or (stacktraceIndex_195 < 0)); __wurst_stackPos_794 = (__wurst_stackPos_794 + (" " + wurst_stack_468[stacktraceIndex_195])); }; $debugPrint511((msg_333 + (" " + __wurst_stackPos_794))); wurst_stack_depth_194 = (wurst_stack_depth_194 - 1); }