integer test_i418 array A_nextFree206 integer A_firstFree902 integer A_maxIndex186 array A_typeId141 integer A_firstFree902 = 0 integer A_maxIndex186 = 0 function initGlobals115() { } function main275() { initGlobals115(); init_test165(); } function config151() { } function init_test165() { dispatch_A_test_A_foo213(new_B146()); if (test_i_418 == 8) { testSuccess111(); } else { }; } IS_NATIVE function testSuccess111() { } function A_foo605(integer this162) { test_i_418 = 7; } function A_init249(integer this150) { } function construct_A192(integer this177) { A_init249(this_177); } function B_foo356(integer this657) { test_i_418 = 8; } function B_init180(integer this182) { } function new_B146() returns integer { local integer this137 this_137 = alloc_B119(); construct_B628(this_137); return this_137; } function construct_B628(integer this703) { construct_A192(this_703); B_init180(this_703); } function error149(string msg111) { $debugPrint847((msg_111 + (" " + #getStackTrace()))); } function alloc_B119() returns integer { local integer this446 if (A_firstFree_902 == 0) { if (A_maxIndex_186 < 32768) { A_maxIndex_186 = (A_maxIndex_186 + 1); this_446 = A_maxIndex_186; A_typeId_141[this_446] = 2; } else { error149("Out of memory: Could not create B."); this_446 = 0; }; } else { A_firstFree_902 = (A_firstFree_902 - 1); this_446 = A_nextFree_206[A_firstFree_902]; A_typeId_141[this_446] = 2; }; return this_446; } function dispatch_A_test_A_foo213(integer this337) { if (A_typeId_141[this_337] == 0) { if (this_337 == 0) { error149("Nullpointer exception when calling A.foo"); } else { error149("Called A.foo on invalid object."); }; } else { }; if (A_typeId_141[this_337] <= 1) { A_foo605(this_337); } else { B_foo356(this_337); }; }