array Base_nextFree576 integer Base_firstFree129 integer Base_maxIndex168 array Base_typeId117 array Base_next472 integer Base_firstFree129 = 0 integer Base_maxIndex168 = 0 function initGlobals934() { Base_firstFree_129 = 0; Base_maxIndex_168 = 0; } function main463() { initGlobals934(); init_test126(); } function config185() { } function init_test126() { local integer suba110 local integer subb133 suba_110 = new_SubClassA260(); subb_133 = new_SubClassB120(); Base_next_472[suba_110] = subb_133; dispatch_SubClassA_test_SubClassA_clear133(suba_110); } IS_NATIVE function testSuccess120() { } function Base_init125(integer this163) { } function construct_Base127(integer this414) { Base_init125(this_414); } function SubClassA_init209(integer this207) { } function new_SubClassA260() returns integer { local integer this123 this_123 = alloc_SubClassA172(); construct_SubClassA105(this_123); return this_123; } function construct_SubClassA105(integer this120) { construct_Base127(this_120); SubClassA_init209(this_120); } function SubClassB_init131(integer this616) { } function new_SubClassB120() returns integer { local integer this763 this_763 = alloc_SubClassB193(); construct_SubClassB112(this_763); return this_763; } function construct_SubClassB112(integer this112) { construct_Base127(this_112); SubClassB_init131(this_112); } function error434(string msg108) { $debugPrint595((msg_108 + (" " + #getStackTrace()))); } function alloc_SubClassA172() returns integer { local integer this131 if (Base_firstFree_129 == 0) { if (Base_maxIndex_168 < 32768) { Base_maxIndex_168 = (Base_maxIndex_168 + 1); this_131 = Base_maxIndex_168; Base_typeId_117[this_131] = 2; } else { error434("Out of memory: Could not create SubClassA."); this_131 = 0; }; } else { Base_firstFree_129 = (Base_firstFree_129 - 1); this_131 = Base_nextFree_576[Base_firstFree_129]; Base_typeId_117[this_131] = 2; }; return this_131; } function alloc_SubClassB193() returns integer { local integer this138 if (Base_firstFree_129 == 0) { if (Base_maxIndex_168 < 32768) { Base_maxIndex_168 = (Base_maxIndex_168 + 1); this_138 = Base_maxIndex_168; Base_typeId_117[this_138] = 3; } else { error434("Out of memory: Could not create SubClassB."); this_138 = 0; }; } else { Base_firstFree_129 = (Base_firstFree_129 - 1); this_138 = Base_nextFree_576[Base_firstFree_129]; Base_typeId_117[this_138] = 3; }; return this_138; } function dispatch_SubClassA_test_SubClassA_clear133(integer this150) { if (Base_typeId_117[this_150] == 0) { if (this_150 == 0) { error434("Nullpointer exception when calling SubClassA.clear"); } else { error434("Called SubClassA.clear on invalid object."); }; } else { }; cyc_SubClassB_clear198(3, this_150); } function cyc_SubClassB_clear198(integer funcChoice289, integer this256) { if (funcChoice_289 == 0) { cyc_SubClassB_clear198(2, this_256); testSuccess120(); } else { if (funcChoice_289 == 1) { if (Base_typeId_117[this_256] == 0) { if (this_256 == 0) { error434("Nullpointer exception when calling Base.clear"); } else { error434("Called Base.clear on invalid object."); }; } else { }; if (Base_typeId_117[this_256] <= 2) { if (Base_typeId_117[this_256] <= 1) { cyc_SubClassB_clear198(2, this_256); } else { cyc_SubClassB_clear198(3, this_256); }; } else { cyc_SubClassB_clear198(0, this_256); }; } else { if (funcChoice_289 == 2) { if (Base_next_472[this_256] != null) { cyc_SubClassB_clear198(1, Base_next_472[this_256]); } else { }; } else { if (funcChoice_289 == 3) { cyc_SubClassB_clear198(2, this_256); } else { }; }; }; }; }