array A_nextFree137 integer A_firstFree434 integer A_maxIndex519 array A_typeId940 integer A_firstFree434 = 0 integer A_maxIndex519 = 0 function initGlobals453() { } function main130() { initGlobals453(); init_test211(); } function config177() { } function init_test211() { if (dispatch_A_test_A_foo819(new_C176()) == 8) { testSuccess891(); } else { }; } IS_NATIVE function testSuccess891() { } function A_foo419(integer this982) returns integer { return 7; } function A_init193(integer this993) { } function construct_A751(integer this162) { A_init193(this_162); } function B_foo197(integer this182) returns integer { return 8; } function B_init674(integer this180) { } function construct_B707(integer this107) { construct_A751(this_107); B_init674(this_107); } function C_init261(integer this166) { } function new_C176() returns integer { local integer this127 this_127 = alloc_C854(); construct_C930(this_127); return this_127; } function construct_C930(integer this140) { construct_B707(this_140); C_init261(this_140); } function error108(string msg220) { $debugPrint174((msg_220 + (" " + #getStackTrace()))); } function alloc_C854() returns integer { local integer this128 if (A_firstFree_434 == 0) { if (A_maxIndex_519 < 32768) { A_maxIndex_519 = (A_maxIndex_519 + 1); this_128 = A_maxIndex_519; A_typeId_940[this_128] = 3; } else { error108("Out of memory: Could not create C."); this_128 = 0; }; } else { A_firstFree_434 = (A_firstFree_434 - 1); this_128 = A_nextFree_137[A_firstFree_434]; A_typeId_940[this_128] = 3; }; return this_128; } function dispatch_A_test_A_foo819(integer this107) returns integer { if (A_typeId_940[this_107] == 0) { if (this_107 == 0) { error108("Nullpointer exception when calling A.foo"); } else { error108("Called A.foo on invalid object."); }; } else { }; if (A_typeId_940[this_107] <= 1) { this_107 = A_foo419(this_107); } else { this_107 = B_foo197(this_107); }; return this_107; }