integer test_x896 array B_nextFree744 integer B_firstFree127 integer B_maxIndex174 array B_typeId455 integer wurst_stack_depth212 array wurst_stack670 integer test_x896 = 2 integer B_firstFree127 = 0 integer B_maxIndex174 = 0 integer wurst_stack_depth212 = 0 function initGlobals271() { } function main358() { initGlobals271(); init_test599("when calling init_test in ondestroy_withVar, line 1"); } function config188() { } function init_test599(string __wurst_stackPos640) { local integer a909 wurst_stack_670[wurst_stack_depth_212] = __wurst_stackPos_640; wurst_stack_depth_212 = (wurst_stack_depth_212 + 1); test_x_896 = 2; a_909 = new_X208("when calling new_X in ondestroy_withVar, line 14"); wurst_stack_670[wurst_stack_depth_212] = "when calling dispatch_X_destroyX in ondestroy_withVar, line 15"; wurst_stack_depth_212 = (wurst_stack_depth_212 + 1); if (B_typeId_455[a_909] == 0) { if (a_909 == 0) { error866("Nullpointer exception when calling X.X", "when calling error in ondestroy_withVar, line 12"); } else { error866("Called X.X on invalid object.", "when calling error in ondestroy_withVar, line 12"); }; } else { }; destroyX163(a_909, "when calling destroyX in ondestroy_withVar, line 12"); wurst_stack_depth_212 = (wurst_stack_depth_212 - 1); if (test_x_896 == 6) { testSuccess800(); } else { }; wurst_stack_depth_212 = (wurst_stack_depth_212 - 1); } IS_NATIVE function testSuccess800() { } function destroyX163(integer this280, string __wurst_stackPos386) { wurst_stack_670[wurst_stack_depth_212] = __wurst_stackPos_386; wurst_stack_depth_212 = (wurst_stack_depth_212 + 1); test_x_896 = ((test_x_896 + 1) * 2); wurst_stack_670[wurst_stack_depth_212] = "when calling dealloc_X in ondestroy_withVar, line 12"; wurst_stack_depth_212 = (wurst_stack_depth_212 + 1); if (B_typeId_455[this_280] == 0) { error866("Double free: object of type X", "when calling error in ondestroy_withVar, line 12"); } else { B_nextFree_744[B_firstFree_127] = this_280; B_firstFree_127 = (B_firstFree_127 + 1); B_typeId_455[this_280] = 0; }; wurst_stack_depth_212 = ((wurst_stack_depth_212 - 1) - 1); } function new_X208(string __wurst_stackPos510) returns integer { local integer this131 wurst_stack_670[wurst_stack_depth_212] = __wurst_stackPos_510; wurst_stack_depth_212 = (wurst_stack_depth_212 + 1); wurst_stack_670[wurst_stack_depth_212] = "when calling alloc_X in ondestroy_withVar, line 12"; wurst_stack_depth_212 = (wurst_stack_depth_212 + 1); if (B_firstFree_127 == 0) { if (B_maxIndex_174 < 32768) { B_maxIndex_174 = (B_maxIndex_174 + 1); this_131 = B_maxIndex_174; B_typeId_455[this_131] = 3; } else { error866("Out of memory: Could not create X.", "when calling error in ondestroy_withVar, line 12"); this_131 = 0; }; } else { B_firstFree_127 = (B_firstFree_127 - 1); this_131 = B_nextFree_744[B_firstFree_127]; B_typeId_455[this_131] = 3; }; wurst_stack_depth_212 = ((wurst_stack_depth_212 - 1) - 1); return this_131; } function error866(string msg733, string __wurst_stackPos167) { local integer stacktraceIndex131 local integer stacktraceLimit107 wurst_stack_670[wurst_stack_depth_212] = __wurst_stackPos_167; wurst_stack_depth_212 = (wurst_stack_depth_212 + 1); __wurst_stackPos_167 = ""; stacktraceIndex_131 = wurst_stack_depth_212; stacktraceLimit_107 = 0; loop { stacktraceIndex_131 = (stacktraceIndex_131 - 1); stacktraceLimit_107 = (stacktraceLimit_107 + 1); exitwhen ((stacktraceLimit_107 > 20) or (stacktraceIndex_131 < 0)); __wurst_stackPos_167 = (__wurst_stackPos_167 + (" " + wurst_stack_670[stacktraceIndex_131])); }; $debugPrint151((msg_733 + (" " + __wurst_stackPos_167))); wurst_stack_depth_212 = (wurst_stack_depth_212 - 1); }