array A_nextFree346 integer A_firstFree193 integer A_maxIndex499 array A_typeId179 integer wurst_stack_depth214 array wurst_stack468 integer A_firstFree193 = 0 integer A_maxIndex499 = 0 integer wurst_stack_depth214 = 0 function initGlobals154() { } function main160() { initGlobals154(); wurst_stack_468[wurst_stack_depth_214] = "when calling init_test in subclassModuleOnDestroy, line 1"; wurst_stack_depth_214 = (wurst_stack_depth_214 + 1); dispatch_A_destroyA156(new_B177("when calling new_B in subclassModuleOnDestroy, line 10"), "when calling dispatch_A_destroyA in subclassModuleOnDestroy, line 11"); wurst_stack_depth_214 = (wurst_stack_depth_214 - 1); } function config129() { } IS_NATIVE function testSuccess191() { } function new_B177(string __wurst_stackPos349) returns integer { local integer this213 wurst_stack_468[wurst_stack_depth_214] = __wurst_stackPos_349; wurst_stack_depth_214 = (wurst_stack_depth_214 + 1); wurst_stack_468[wurst_stack_depth_214] = "when calling alloc_B in subclassModuleOnDestroy, line 7"; wurst_stack_depth_214 = (wurst_stack_depth_214 + 1); if (A_firstFree_193 == 0) { if (A_maxIndex_499 < 32768) { A_maxIndex_499 = (A_maxIndex_499 + 1); this_213 = A_maxIndex_499; A_typeId_179[this_213] = 2; } else { error167("Out of memory: Could not create B.", "when calling error in subclassModuleOnDestroy, line 7"); this_213 = 0; }; } else { A_firstFree_193 = (A_firstFree_193 - 1); this_213 = A_nextFree_346[A_firstFree_193]; A_typeId_179[this_213] = 2; }; wurst_stack_depth_214 = ((wurst_stack_depth_214 - 1) - 1); return this_213; } function error167(string msg160, string __wurst_stackPos737) { local integer stacktraceIndex309 local integer stacktraceLimit577 wurst_stack_468[wurst_stack_depth_214] = __wurst_stackPos_737; wurst_stack_depth_214 = (wurst_stack_depth_214 + 1); __wurst_stackPos_737 = ""; stacktraceIndex_309 = wurst_stack_depth_214; stacktraceLimit_577 = 0; loop { stacktraceIndex_309 = (stacktraceIndex_309 - 1); stacktraceLimit_577 = (stacktraceLimit_577 + 1); exitwhen ((stacktraceLimit_577 > 20) or (stacktraceIndex_309 < 0)); __wurst_stackPos_737 = (__wurst_stackPos_737 + (" " + wurst_stack_468[stacktraceIndex_309])); }; $debugPrint161((msg_160 + (" " + __wurst_stackPos_737))); wurst_stack_depth_214 = (wurst_stack_depth_214 - 1); } function dispatch_A_destroyA156(integer this503, string __wurst_stackPos160) { wurst_stack_468[wurst_stack_depth_214] = __wurst_stackPos_160; wurst_stack_depth_214 = (wurst_stack_depth_214 + 1); if (A_typeId_179[this_503] == 0) { if (this_503 == 0) { error167("Nullpointer exception when calling A.A", "when calling error in subclassModuleOnDestroy, line 6"); } else { error167("Called A.A on invalid object.", "when calling error in subclassModuleOnDestroy, line 6"); }; } else { }; if (A_typeId_179[this_503] <= 1) { wurst_stack_468[wurst_stack_depth_214] = "when calling destroyA in subclassModuleOnDestroy, line 6"; wurst_stack_depth_214 = (wurst_stack_depth_214 + 1); wurst_stack_468[wurst_stack_depth_214] = "when calling dealloc_A in subclassModuleOnDestroy, line 6"; wurst_stack_depth_214 = (wurst_stack_depth_214 + 1); if (A_typeId_179[this_503] == 0) { error167("Double free: object of type A", "when calling error in subclassModuleOnDestroy, line 6"); } else { A_nextFree_346[A_firstFree_193] = this_503; A_firstFree_193 = (A_firstFree_193 + 1); A_typeId_179[this_503] = 0; }; wurst_stack_depth_214 = ((wurst_stack_depth_214 - 1) - 1); } else { wurst_stack_468[wurst_stack_depth_214] = "when calling destroyB in subclassModuleOnDestroy, line 6"; wurst_stack_depth_214 = (wurst_stack_depth_214 + 1); testSuccess191(); wurst_stack_468[wurst_stack_depth_214] = "when calling dealloc_B in subclassModuleOnDestroy, line 7"; wurst_stack_depth_214 = (wurst_stack_depth_214 + 1); if (A_typeId_179[this_503] == 0) { error167("Double free: object of type B", "when calling error in subclassModuleOnDestroy, line 7"); } else { A_nextFree_346[A_firstFree_193] = this_503; A_firstFree_193 = (A_firstFree_193 + 1); A_typeId_179[this_503] = 0; }; wurst_stack_depth_214 = ((wurst_stack_depth_214 - 1) - 1); }; wurst_stack_depth_214 = (wurst_stack_depth_214 - 1); }