array Base_nextFree109 integer Base_firstFree685 integer Base_maxIndex265 array Base_typeId130 array Base_next162 integer Base_firstFree685 = 0 integer Base_maxIndex265 = 0 function initGlobals154() { Base_firstFree_685 = 0; Base_maxIndex_265 = 0; } function main154() { initGlobals154(); init_test112(); } function config636() { } function init_test112() { local integer suba127 local integer subb294 suba_127 = new_SubClassA413(); subb_294 = new_SubClassB156(); Base_next_162[suba_127] = subb_294; dispatch_SubClassA_test_SubClassA_clear138(suba_127); } IS_NATIVE function testSuccess614() { } function Base_init171(integer this110) { } function construct_Base103(integer this103) { Base_init171(this_103); } function SubClassA_init172(integer this329) { } function new_SubClassA413() returns integer { local integer this783 this_783 = alloc_SubClassA224(); construct_SubClassA169(this_783); return this_783; } function construct_SubClassA169(integer this119) { construct_Base103(this_119); SubClassA_init172(this_119); } function SubClassB_init917(integer this408) { } function new_SubClassB156() returns integer { local integer this324 this_324 = alloc_SubClassB109(); construct_SubClassB111(this_324); return this_324; } function construct_SubClassB111(integer this500) { construct_Base103(this_500); SubClassB_init917(this_500); } function error142(string msg894) { $debugPrint147((msg_894 + (" " + #getStackTrace()))); } function alloc_SubClassA224() returns integer { local integer this202 if (Base_firstFree_685 == 0) { if (Base_maxIndex_265 < 32768) { Base_maxIndex_265 = (Base_maxIndex_265 + 1); this_202 = Base_maxIndex_265; Base_typeId_130[this_202] = 2; } else { error142("Out of memory: Could not create SubClassA."); this_202 = 0; }; } else { Base_firstFree_685 = (Base_firstFree_685 - 1); this_202 = Base_nextFree_109[Base_firstFree_685]; Base_typeId_130[this_202] = 2; }; return this_202; } function alloc_SubClassB109() returns integer { local integer this159 if (Base_firstFree_685 == 0) { if (Base_maxIndex_265 < 32768) { Base_maxIndex_265 = (Base_maxIndex_265 + 1); this_159 = Base_maxIndex_265; Base_typeId_130[this_159] = 3; } else { error142("Out of memory: Could not create SubClassB."); this_159 = 0; }; } else { Base_firstFree_685 = (Base_firstFree_685 - 1); this_159 = Base_nextFree_109[Base_firstFree_685]; Base_typeId_130[this_159] = 3; }; return this_159; } function dispatch_SubClassA_test_SubClassA_clear138(integer this432) { if (Base_typeId_130[this_432] == 0) { if (this_432 == 0) { error142("Nullpointer exception when calling SubClassA.clear"); } else { error142("Called SubClassA.clear on invalid object."); }; } else { }; cyc_SubClassB_clear166(3, this_432); } function cyc_SubClassB_clear166(integer funcChoice176, integer this614) { if (funcChoice_176 == 0) { cyc_SubClassB_clear166(2, this_614); testSuccess614(); } else { if (funcChoice_176 == 1) { if (Base_typeId_130[this_614] == 0) { if (this_614 == 0) { error142("Nullpointer exception when calling Base.clear"); } else { error142("Called Base.clear on invalid object."); }; } else { }; if (Base_typeId_130[this_614] <= 2) { if (Base_typeId_130[this_614] <= 1) { cyc_SubClassB_clear166(2, this_614); } else { cyc_SubClassB_clear166(3, this_614); }; } else { cyc_SubClassB_clear166(0, this_614); }; } else { if (funcChoice_176 == 2) { if (Base_next_162[this_614] != null) { cyc_SubClassB_clear166(1, Base_next_162[this_614]); } else { }; } else { if (funcChoice_176 == 3) { cyc_SubClassB_clear166(2, this_614); } else { }; }; }; }; }