integer test_x611 array B_nextFree137 integer B_firstFree208 integer B_maxIndex567 array B_typeId193 array B_y211 integer test_x611 = 2 integer B_firstFree208 = 0 integer B_maxIndex567 = 0 function initGlobals113() { B_firstFree_208 = 0; B_maxIndex_567 = 0; } function main183() { initGlobals113(); init_test569(); } function config951() { } function init_test569() { local integer a133 test_x_611 = 2; a_133 = new_A212(); dispatch_A_test_A_foo159(a_133); if (test_x_611 == 8) { testSuccess134(); } else { }; } IS_NATIVE function testSuccess134() { } function A_foo947(integer this176) { test_x_611 = (test_x_611 + B_y_211[this_176]); B_foo198(this_176); } function A_init205(integer this813) { } function new_A212() returns integer { local integer this169 this_169 = alloc_A152(); construct_A131(this_169); return this_169; } function construct_A131(integer this241) { construct_B610(this_241); A_init205(this_241); } function B_foo198(integer this114) { test_x_611 = (test_x_611 * B_y_211[this_114]); } function B_init157(integer this157) { B_y_211[this_157] = 2; } function construct_B610(integer this100) { B_init157(this_100); } function alloc_A152() returns integer { local integer this498 if (B_firstFree_208 == 0) { if (B_maxIndex_567 < 32768) { B_maxIndex_567 = (B_maxIndex_567 + 1); this_498 = B_maxIndex_567; B_typeId_193[this_498] = 2; } else { error121("Out of memory: Could not create A."); this_498 = 0; }; } else { B_firstFree_208 = (B_firstFree_208 - 1); this_498 = B_nextFree_137[B_firstFree_208]; B_typeId_193[this_498] = 2; }; return this_498; } function error121(string msg307) { $debugPrint331((msg_307 + (" " + #getStackTrace()))); } function dispatch_A_test_A_foo159(integer this175) { if (B_typeId_193[this_175] == 0) { if (this_175 == 0) { error121("Nullpointer exception when calling A.foo"); } else { error121("Called A.foo on invalid object."); }; } else { }; A_foo947(this_175); }