array Base_nextFree155 integer Base_firstFree117 integer Base_maxIndex410 array Base_typeId176 array Base_next269 integer Base_firstFree117 = 0 integer Base_maxIndex410 = 0 function initGlobals593() { Base_firstFree_117 = 0; Base_maxIndex_410 = 0; } function main146() { initGlobals593(); init_test119(); } function config921() { } function init_test119() { local integer suba983 local integer subb165 suba_983 = new_SubClassA806(); subb_165 = new_SubClassB864(); Base_next_269[suba_983] = subb_165; dispatch_SubClassA_test_SubClassA_clear341(suba_983); } IS_NATIVE function testSuccess539() { } function Base_init195(integer this136) { } function construct_Base424(integer this670) { Base_init195(this_670); } function SubClassA_init112(integer this207) { } function new_SubClassA806() returns integer { local integer this493 this_493 = alloc_SubClassA314(); construct_SubClassA450(this_493); return this_493; } function construct_SubClassA450(integer this110) { construct_Base424(this_110); SubClassA_init112(this_110); } function SubClassB_init133(integer this163) { } function new_SubClassB864() returns integer { local integer this302 this_302 = alloc_SubClassB165(); construct_SubClassB165(this_302); return this_302; } function construct_SubClassB165(integer this213) { construct_Base424(this_213); SubClassB_init133(this_213); } function error308(string msg103) { $debugPrint548((msg_103 + (" " + #getStackTrace()))); } function alloc_SubClassA314() returns integer { local integer this104 if (Base_firstFree_117 == 0) { if (Base_maxIndex_410 < 32768) { Base_maxIndex_410 = (Base_maxIndex_410 + 1); this_104 = Base_maxIndex_410; Base_typeId_176[this_104] = 2; } else { error308("Out of memory: Could not create SubClassA."); this_104 = 0; }; } else { Base_firstFree_117 = (Base_firstFree_117 - 1); this_104 = Base_nextFree_155[Base_firstFree_117]; Base_typeId_176[this_104] = 2; }; return this_104; } function alloc_SubClassB165() returns integer { local integer this135 if (Base_firstFree_117 == 0) { if (Base_maxIndex_410 < 32768) { Base_maxIndex_410 = (Base_maxIndex_410 + 1); this_135 = Base_maxIndex_410; Base_typeId_176[this_135] = 3; } else { error308("Out of memory: Could not create SubClassB."); this_135 = 0; }; } else { Base_firstFree_117 = (Base_firstFree_117 - 1); this_135 = Base_nextFree_155[Base_firstFree_117]; Base_typeId_176[this_135] = 3; }; return this_135; } function dispatch_SubClassA_test_SubClassA_clear341(integer this165) { if (Base_typeId_176[this_165] == 0) { if (this_165 == 0) { error308("Nullpointer exception when calling SubClassA.clear"); } else { error308("Called SubClassA.clear on invalid object."); }; } else { }; cyc_SubClassB_clear182(3, this_165); } function cyc_SubClassB_clear182(integer funcChoice140, integer this352) { if (funcChoice_140 == 0) { cyc_SubClassB_clear182(2, this_352); testSuccess539(); } else { if (funcChoice_140 == 1) { if (Base_typeId_176[this_352] == 0) { if (this_352 == 0) { error308("Nullpointer exception when calling Base.clear"); } else { error308("Called Base.clear on invalid object."); }; } else { }; if (Base_typeId_176[this_352] <= 2) { if (Base_typeId_176[this_352] <= 1) { cyc_SubClassB_clear182(2, this_352); } else { cyc_SubClassB_clear182(3, this_352); }; } else { cyc_SubClassB_clear182(0, this_352); }; } else { if (funcChoice_140 == 2) { if (Base_next_269[this_352] != null) { cyc_SubClassB_clear182(1, Base_next_269[this_352]); } else { }; } else { if (funcChoice_140 == 3) { cyc_SubClassB_clear182(2, this_352); } else { }; }; }; }; }