integer test_x147 array I_nextFree111 integer I_firstFree558 integer I_maxIndex212 array I_typeId150 integer wurst_stack_depth999 array wurst_stack951 integer test_x147 = 0 integer I_firstFree558 = 0 integer I_maxIndex212 = 0 integer wurst_stack_depth999 = 0 function initGlobals881() { } function main171() { initGlobals881(); wurst_stack_951[wurst_stack_depth_999] = "when calling init_test in destroyInterface, line 1"; wurst_stack_depth_999 = (wurst_stack_depth_999 + 1); dispatch_I_destroyI142(new_C540("when calling new_C in destroyInterface, line 15"), "when calling dispatch_I_destroyI in destroyInterface, line 16"); if (test_x_147 == 2) { testSuccess181(); } else { }; wurst_stack_depth_999 = (wurst_stack_depth_999 - 1); } function config145() { } IS_NATIVE function testSuccess181() { } function new_C540(string __wurst_stackPos143) returns integer { local integer this142 wurst_stack_951[wurst_stack_depth_999] = __wurst_stackPos_143; wurst_stack_depth_999 = (wurst_stack_depth_999 + 1); wurst_stack_951[wurst_stack_depth_999] = "when calling alloc_C in destroyInterface, line 10"; wurst_stack_depth_999 = (wurst_stack_depth_999 + 1); if (I_firstFree_558 == 0) { if (I_maxIndex_212 < 32768) { I_maxIndex_212 = (I_maxIndex_212 + 1); this_142 = I_maxIndex_212; I_typeId_150[this_142] = 3; } else { error109("Out of memory: Could not create C.", "when calling error in destroyInterface, line 10"); this_142 = 0; }; } else { I_firstFree_558 = (I_firstFree_558 - 1); this_142 = I_nextFree_111[I_firstFree_558]; I_typeId_150[this_142] = 3; }; wurst_stack_depth_999 = ((wurst_stack_depth_999 - 1) - 1); return this_142; } function error109(string msg222, string __wurst_stackPos207) { local integer stacktraceIndex155 local integer stacktraceLimit202 wurst_stack_951[wurst_stack_depth_999] = __wurst_stackPos_207; wurst_stack_depth_999 = (wurst_stack_depth_999 + 1); __wurst_stackPos_207 = ""; stacktraceIndex_155 = wurst_stack_depth_999; stacktraceLimit_202 = 0; loop { stacktraceIndex_155 = (stacktraceIndex_155 - 1); stacktraceLimit_202 = (stacktraceLimit_202 + 1); exitwhen ((stacktraceLimit_202 > 20) or (stacktraceIndex_155 < 0)); __wurst_stackPos_207 = (__wurst_stackPos_207 + (" " + wurst_stack_951[stacktraceIndex_155])); }; $debugPrint139((msg_222 + (" " + __wurst_stackPos_207))); wurst_stack_depth_999 = (wurst_stack_depth_999 - 1); } function dispatch_I_destroyI142(integer this934, string __wurst_stackPos162) { wurst_stack_951[wurst_stack_depth_999] = __wurst_stackPos_162; wurst_stack_depth_999 = (wurst_stack_depth_999 + 1); if (I_typeId_150[this_934] == 0) { if (this_934 == 0) { error109("Nullpointer exception when calling I.I", "when calling error in destroyInterface, line 4"); } else { error109("Called I.I on invalid object.", "when calling error in destroyInterface, line 4"); }; } else { }; if (I_typeId_150[this_934] <= 2) { if (I_typeId_150[this_934] <= 1) { wurst_stack_951[wurst_stack_depth_999] = "when calling destroyI in destroyInterface, line 4"; wurst_stack_depth_999 = (wurst_stack_depth_999 + 1); wurst_stack_951[wurst_stack_depth_999] = "when calling dealloc_I in destroyInterface, line 4"; wurst_stack_depth_999 = (wurst_stack_depth_999 + 1); if (I_typeId_150[this_934] == 0) { error109("Double free: object of type I", "when calling error in destroyInterface, line 4"); } else { I_nextFree_111[I_firstFree_558] = this_934; I_firstFree_558 = (I_firstFree_558 + 1); I_typeId_150[this_934] = 0; }; wurst_stack_depth_999 = ((wurst_stack_depth_999 - 1) - 1); } else { wurst_stack_951[wurst_stack_depth_999] = "when calling destroyB in destroyInterface, line 4"; wurst_stack_depth_999 = (wurst_stack_depth_999 + 1); test_x_147 = 1; wurst_stack_951[wurst_stack_depth_999] = "when calling dealloc_B in destroyInterface, line 8"; wurst_stack_depth_999 = (wurst_stack_depth_999 + 1); if (I_typeId_150[this_934] == 0) { error109("Double free: object of type B", "when calling error in destroyInterface, line 6"); } else { I_nextFree_111[I_firstFree_558] = this_934; I_firstFree_558 = (I_firstFree_558 + 1); I_typeId_150[this_934] = 0; }; wurst_stack_depth_999 = ((wurst_stack_depth_999 - 1) - 1); }; } else { wurst_stack_951[wurst_stack_depth_999] = "when calling destroyC in destroyInterface, line 4"; wurst_stack_depth_999 = (wurst_stack_depth_999 + 1); test_x_147 = 2; wurst_stack_951[wurst_stack_depth_999] = "when calling dealloc_C in destroyInterface, line 12"; wurst_stack_depth_999 = (wurst_stack_depth_999 + 1); if (I_typeId_150[this_934] == 0) { error109("Double free: object of type C", "when calling error in destroyInterface, line 10"); } else { I_nextFree_111[I_firstFree_558] = this_934; I_firstFree_558 = (I_firstFree_558 + 1); I_typeId_150[this_934] = 0; }; wurst_stack_depth_999 = ((wurst_stack_depth_999 - 1) - 1); }; wurst_stack_depth_999 = (wurst_stack_depth_999 - 1); }