integer test_x108 array I_nextFree542 integer I_firstFree747 integer I_maxIndex191 array I_typeId179 integer wurst_stack_depth107 array wurst_stack202 integer test_x108 = 0 integer I_firstFree747 = 0 integer I_maxIndex191 = 0 integer wurst_stack_depth107 = 0 function initGlobals837() { } function main775() { initGlobals837(); wurst_stack_202[wurst_stack_depth_107] = "when calling init_test in destroyInterface, line 1"; wurst_stack_depth_107 = (wurst_stack_depth_107 + 1); dispatch_I_destroyI111(new_C105("when calling new_C in destroyInterface, line 15"), "when calling dispatch_I_destroyI in destroyInterface, line 16"); if (test_x_108 == 2) { testSuccess208(); } else { }; wurst_stack_depth_107 = (wurst_stack_depth_107 - 1); } function config104() { } IS_NATIVE function testSuccess208() { } function new_C105(string __wurst_stackPos610) returns integer { local integer this670 wurst_stack_202[wurst_stack_depth_107] = __wurst_stackPos_610; wurst_stack_depth_107 = (wurst_stack_depth_107 + 1); wurst_stack_202[wurst_stack_depth_107] = "when calling alloc_C in destroyInterface, line 10"; wurst_stack_depth_107 = (wurst_stack_depth_107 + 1); if (I_firstFree_747 == 0) { if (I_maxIndex_191 < 32768) { I_maxIndex_191 = (I_maxIndex_191 + 1); this_670 = I_maxIndex_191; I_typeId_179[this_670] = 3; } else { error454("Out of memory: Could not create C.", "when calling error in destroyInterface, line 10"); this_670 = 0; }; } else { I_firstFree_747 = (I_firstFree_747 - 1); this_670 = I_nextFree_542[I_firstFree_747]; I_typeId_179[this_670] = 3; }; wurst_stack_depth_107 = ((wurst_stack_depth_107 - 1) - 1); return this_670; } function error454(string msg916, string __wurst_stackPos197) { local integer stacktraceIndex212 local integer stacktraceLimit274 wurst_stack_202[wurst_stack_depth_107] = __wurst_stackPos_197; wurst_stack_depth_107 = (wurst_stack_depth_107 + 1); __wurst_stackPos_197 = ""; stacktraceIndex_212 = wurst_stack_depth_107; stacktraceLimit_274 = 0; loop { stacktraceIndex_212 = (stacktraceIndex_212 - 1); stacktraceLimit_274 = (stacktraceLimit_274 + 1); exitwhen ((stacktraceLimit_274 > 20) or (stacktraceIndex_212 < 0)); __wurst_stackPos_197 = (__wurst_stackPos_197 + (" " + wurst_stack_202[stacktraceIndex_212])); }; $debugPrint186((msg_916 + (" " + __wurst_stackPos_197))); wurst_stack_depth_107 = (wurst_stack_depth_107 - 1); } function dispatch_I_destroyI111(integer this192, string __wurst_stackPos121) { wurst_stack_202[wurst_stack_depth_107] = __wurst_stackPos_121; wurst_stack_depth_107 = (wurst_stack_depth_107 + 1); if (I_typeId_179[this_192] == 0) { if (this_192 == 0) { error454("Nullpointer exception when calling I.I", "when calling error in destroyInterface, line 4"); } else { error454("Called I.I on invalid object.", "when calling error in destroyInterface, line 4"); }; } else { }; if (I_typeId_179[this_192] <= 2) { if (I_typeId_179[this_192] <= 1) { wurst_stack_202[wurst_stack_depth_107] = "when calling destroyI in destroyInterface, line 4"; wurst_stack_depth_107 = (wurst_stack_depth_107 + 1); wurst_stack_202[wurst_stack_depth_107] = "when calling dealloc_I in destroyInterface, line 4"; wurst_stack_depth_107 = (wurst_stack_depth_107 + 1); if (I_typeId_179[this_192] == 0) { error454("Double free: object of type I", "when calling error in destroyInterface, line 4"); } else { I_nextFree_542[I_firstFree_747] = this_192; I_firstFree_747 = (I_firstFree_747 + 1); I_typeId_179[this_192] = 0; }; wurst_stack_depth_107 = ((wurst_stack_depth_107 - 1) - 1); } else { wurst_stack_202[wurst_stack_depth_107] = "when calling destroyB in destroyInterface, line 4"; wurst_stack_depth_107 = (wurst_stack_depth_107 + 1); test_x_108 = 1; wurst_stack_202[wurst_stack_depth_107] = "when calling dealloc_B in destroyInterface, line 8"; wurst_stack_depth_107 = (wurst_stack_depth_107 + 1); if (I_typeId_179[this_192] == 0) { error454("Double free: object of type B", "when calling error in destroyInterface, line 6"); } else { I_nextFree_542[I_firstFree_747] = this_192; I_firstFree_747 = (I_firstFree_747 + 1); I_typeId_179[this_192] = 0; }; wurst_stack_depth_107 = ((wurst_stack_depth_107 - 1) - 1); }; } else { wurst_stack_202[wurst_stack_depth_107] = "when calling destroyC in destroyInterface, line 4"; wurst_stack_depth_107 = (wurst_stack_depth_107 + 1); test_x_108 = 2; wurst_stack_202[wurst_stack_depth_107] = "when calling dealloc_C in destroyInterface, line 12"; wurst_stack_depth_107 = (wurst_stack_depth_107 + 1); if (I_typeId_179[this_192] == 0) { error454("Double free: object of type C", "when calling error in destroyInterface, line 10"); } else { I_nextFree_542[I_firstFree_747] = this_192; I_firstFree_747 = (I_firstFree_747 + 1); I_typeId_179[this_192] = 0; }; wurst_stack_depth_107 = ((wurst_stack_depth_107 - 1) - 1); }; wurst_stack_depth_107 = (wurst_stack_depth_107 - 1); }