array Base_nextFree300 integer Base_firstFree446 integer Base_maxIndex125 array Base_typeId876 array Base_next937 integer wurst_stack_depth150 array wurst_stack395 integer Base_firstFree446 = 0 integer Base_maxIndex125 = 0 integer wurst_stack_depth150 = 0 function initGlobals115() { } function main672() { local integer suba178 local integer subb160 initGlobals115(); wurst_stack_395[wurst_stack_depth_150] = "when calling init_test in testRecursiveMemberDispatch, line 1"; wurst_stack_depth_150 = (wurst_stack_depth_150 + 1); suba_178 = new_SubClassA145("when calling new_SubClassA in testRecursiveMemberDispatch, line 17"); subb_160 = new_SubClassB145("when calling new_SubClassB in testRecursiveMemberDispatch, line 18"); Base_next_937[suba_178] = subb_160; dispatch_SubClassA_test_SubClassA_clear212(suba_178, "when calling clear in testRecursiveMemberDispatch, line 20"); wurst_stack_depth_150 = (wurst_stack_depth_150 - 1); } function config164() { } IS_NATIVE function testSuccess778() { } function new_SubClassA145(string __wurst_stackPos196) returns integer { local integer this511 wurst_stack_395[wurst_stack_depth_150] = __wurst_stackPos_196; wurst_stack_depth_150 = (wurst_stack_depth_150 + 1); wurst_stack_395[wurst_stack_depth_150] = "when calling alloc_SubClassA in testRecursiveMemberDispatch, line 9"; wurst_stack_depth_150 = (wurst_stack_depth_150 + 1); if (Base_firstFree_446 == 0) { if (Base_maxIndex_125 < 32768) { Base_maxIndex_125 = (Base_maxIndex_125 + 1); this_511 = Base_maxIndex_125; Base_typeId_876[this_511] = 2; } else { error168("Out of memory: Could not create SubClassA.", "when calling error in testRecursiveMemberDispatch, line 9"); this_511 = 0; }; } else { Base_firstFree_446 = (Base_firstFree_446 - 1); this_511 = Base_nextFree_300[Base_firstFree_446]; Base_typeId_876[this_511] = 2; }; wurst_stack_depth_150 = ((wurst_stack_depth_150 - 1) - 1); return this_511; } function new_SubClassB145(string __wurst_stackPos159) returns integer { local integer this181 wurst_stack_395[wurst_stack_depth_150] = __wurst_stackPos_159; wurst_stack_depth_150 = (wurst_stack_depth_150 + 1); wurst_stack_395[wurst_stack_depth_150] = "when calling alloc_SubClassB in testRecursiveMemberDispatch, line 12"; wurst_stack_depth_150 = (wurst_stack_depth_150 + 1); if (Base_firstFree_446 == 0) { if (Base_maxIndex_125 < 32768) { Base_maxIndex_125 = (Base_maxIndex_125 + 1); this_181 = Base_maxIndex_125; Base_typeId_876[this_181] = 3; } else { error168("Out of memory: Could not create SubClassB.", "when calling error in testRecursiveMemberDispatch, line 12"); this_181 = 0; }; } else { Base_firstFree_446 = (Base_firstFree_446 - 1); this_181 = Base_nextFree_300[Base_firstFree_446]; Base_typeId_876[this_181] = 3; }; wurst_stack_depth_150 = ((wurst_stack_depth_150 - 1) - 1); return this_181; } function error168(string msg162, string __wurst_stackPos439) { local integer stacktraceIndex147 local integer stacktraceLimit907 wurst_stack_395[wurst_stack_depth_150] = __wurst_stackPos_439; wurst_stack_depth_150 = (wurst_stack_depth_150 + 1); __wurst_stackPos_439 = ""; stacktraceIndex_147 = wurst_stack_depth_150; stacktraceLimit_907 = 0; loop { stacktraceIndex_147 = (stacktraceIndex_147 - 1); stacktraceLimit_907 = (stacktraceLimit_907 + 1); exitwhen ((stacktraceLimit_907 > 20) or (stacktraceIndex_147 < 0)); __wurst_stackPos_439 = (__wurst_stackPos_439 + (" " + wurst_stack_395[stacktraceIndex_147])); }; $debugPrint215((msg_162 + (" " + __wurst_stackPos_439))); wurst_stack_depth_150 = (wurst_stack_depth_150 - 1); } function dispatch_Base_test_Base_clear113(integer this610, string __wurst_stackPos733) { wurst_stack_395[wurst_stack_depth_150] = __wurst_stackPos_733; wurst_stack_depth_150 = (wurst_stack_depth_150 + 1); if (Base_typeId_876[this_610] == 0) { if (this_610 == 0) { error168("Nullpointer exception when calling Base.clear", "when calling error in testRecursiveMemberDispatch, line 5"); } else { error168("Called Base.clear on invalid object.", "when calling error in testRecursiveMemberDispatch, line 5"); }; } else { }; wurst_stack_395[wurst_stack_depth_150] = "when calling clear in testRecursiveMemberDispatch, line 5"; wurst_stack_depth_150 = (wurst_stack_depth_150 + 1); if (Base_typeId_876[this_610] <= 2) { if (Base_typeId_876[this_610] <= 1) { if (Base_next_937[this_610] != null) { dispatch_Base_test_Base_clear113(Base_next_937[this_610], "when calling clear in testRecursiveMemberDispatch, line 7"); } else { }; wurst_stack_depth_150 = (wurst_stack_depth_150 - 1); } else { wurst_stack_395[wurst_stack_depth_150] = "when calling clear in testRecursiveMemberDispatch, line 11"; wurst_stack_depth_150 = (wurst_stack_depth_150 + 1); if (Base_next_937[this_610] != null) { dispatch_Base_test_Base_clear113(Base_next_937[this_610], "when calling clear in testRecursiveMemberDispatch, line 7"); } else { }; wurst_stack_depth_150 = ((wurst_stack_depth_150 - 1) - 1); }; } else { wurst_stack_395[wurst_stack_depth_150] = "when calling clear in testRecursiveMemberDispatch, line 14"; wurst_stack_depth_150 = (wurst_stack_depth_150 + 1); if (Base_next_937[this_610] != null) { dispatch_Base_test_Base_clear113(Base_next_937[this_610], "when calling clear in testRecursiveMemberDispatch, line 7"); } else { }; wurst_stack_depth_150 = (wurst_stack_depth_150 - 1); testSuccess778(); wurst_stack_depth_150 = (wurst_stack_depth_150 - 1); }; wurst_stack_depth_150 = (wurst_stack_depth_150 - 1); } function dispatch_SubClassA_test_SubClassA_clear212(integer this240, string __wurst_stackPos152) { wurst_stack_395[wurst_stack_depth_150] = __wurst_stackPos_152; wurst_stack_depth_150 = (wurst_stack_depth_150 + 1); if (Base_typeId_876[this_240] == 0) { if (this_240 == 0) { error168("Nullpointer exception when calling SubClassA.clear", "when calling error in testRecursiveMemberDispatch, line 10"); } else { error168("Called SubClassA.clear on invalid object.", "when calling error in testRecursiveMemberDispatch, line 10"); }; } else { }; wurst_stack_395[wurst_stack_depth_150] = "when calling clear in testRecursiveMemberDispatch, line 10"; wurst_stack_depth_150 = (wurst_stack_depth_150 + 1); wurst_stack_395[wurst_stack_depth_150] = "when calling clear in testRecursiveMemberDispatch, line 11"; wurst_stack_depth_150 = (wurst_stack_depth_150 + 1); if (Base_next_937[this_240] != null) { dispatch_Base_test_Base_clear113(Base_next_937[this_240], "when calling clear in testRecursiveMemberDispatch, line 7"); } else { }; wurst_stack_depth_150 = (((wurst_stack_depth_150 - 1) - 1) - 1); }