array A_nextFree170 integer A_firstFree811 integer A_maxIndex769 array A_typeId189 integer wurst_stack_depth157 array wurst_stack117 integer A_firstFree811 = 0 integer A_maxIndex769 = 0 integer wurst_stack_depth157 = 0 function initGlobals538() { } function main138() { initGlobals538(); init_test101("when calling init_test in abstract_class, line 1"); } function config118() { } function init_test101(string __wurst_stackPos100) { local integer b108 wurst_stack_117[wurst_stack_depth_157] = __wurst_stackPos_100; wurst_stack_depth_157 = (wurst_stack_depth_157 + 1); b_108 = new_B825("when calling new_B in abstract_class, line 10"); wurst_stack_117[wurst_stack_depth_157] = "when calling foo in abstract_class, line 11"; wurst_stack_depth_157 = (wurst_stack_depth_157 + 1); if (A_typeId_189[b_108] == 0) { if (b_108 == 0) { error142("Nullpointer exception when calling A.foo", "when calling error in abstract_class, line 5"); } else { error142("Called A.foo on invalid object.", "when calling error in abstract_class, line 5"); }; } else { }; wurst_stack_depth_157 = (wurst_stack_depth_157 - 1); testSuccess248(); wurst_stack_depth_157 = (wurst_stack_depth_157 - 1); } IS_NATIVE function testSuccess248() { } function new_B825(string __wurst_stackPos202) returns integer { local integer this979 wurst_stack_117[wurst_stack_depth_157] = __wurst_stackPos_202; wurst_stack_depth_157 = (wurst_stack_depth_157 + 1); wurst_stack_117[wurst_stack_depth_157] = "when calling alloc_B in abstract_class, line 6"; wurst_stack_depth_157 = (wurst_stack_depth_157 + 1); if (A_firstFree_811 == 0) { if (A_maxIndex_769 < 32768) { A_maxIndex_769 = (A_maxIndex_769 + 1); this_979 = A_maxIndex_769; A_typeId_189[this_979] = 2; } else { error142("Out of memory: Could not create B.", "when calling error in abstract_class, line 6"); this_979 = 0; }; } else { A_firstFree_811 = (A_firstFree_811 - 1); this_979 = A_nextFree_170[A_firstFree_811]; A_typeId_189[this_979] = 2; }; wurst_stack_depth_157 = ((wurst_stack_depth_157 - 1) - 1); return this_979; } function error142(string msg186, string __wurst_stackPos127) { local integer stacktraceIndex111 local integer stacktraceLimit116 wurst_stack_117[wurst_stack_depth_157] = __wurst_stackPos_127; wurst_stack_depth_157 = (wurst_stack_depth_157 + 1); __wurst_stackPos_127 = ""; stacktraceIndex_111 = wurst_stack_depth_157; stacktraceLimit_116 = 0; loop { stacktraceIndex_111 = (stacktraceIndex_111 - 1); stacktraceLimit_116 = (stacktraceLimit_116 + 1); exitwhen ((stacktraceLimit_116 > 20) or (stacktraceIndex_111 < 0)); __wurst_stackPos_127 = (__wurst_stackPos_127 + (" " + wurst_stack_117[stacktraceIndex_111])); }; $debugPrint241((msg_186 + (" " + __wurst_stackPos_127))); wurst_stack_depth_157 = (wurst_stack_depth_157 - 1); }