integer test_i583 array A_nextFree135 integer A_firstFree772 integer A_maxIndex927 array A_typeId355 integer A_firstFree772 = 0 integer A_maxIndex927 = 0 function initGlobals161() { A_firstFree_772 = 0; A_maxIndex_927 = 0; } function main174() { initGlobals161(); init_test159(); } function config457() { } function init_test159() { local integer b681 b_681 = new_B187(); dispatch_A_test_A_foo952(b_681); if (test_i_583 == 8) { testSuccess936(); } else { }; } IS_NATIVE function testSuccess936() { } function A_init819(integer this798) { } function construct_A151(integer this867) { A_init819(this_867); } function B_foo191(integer this585) { test_i_583 = 8; } function B_init149(integer this149) { } function new_B187() returns integer { local integer this210 this_210 = alloc_B429(); construct_B158(this_210); return this_210; } function construct_B158(integer this206) { construct_A151(this_206); B_init149(this_206); } function error411(string msg120) { $debugPrint135((msg_120 + (" " + #getStackTrace()))); } function alloc_B429() returns integer { local integer this894 if (A_firstFree_772 == 0) { if (A_maxIndex_927 < 32768) { A_maxIndex_927 = (A_maxIndex_927 + 1); this_894 = A_maxIndex_927; A_typeId_355[this_894] = 2; } else { error411("Out of memory: Could not create B."); this_894 = 0; }; } else { A_firstFree_772 = (A_firstFree_772 - 1); this_894 = A_nextFree_135[A_firstFree_772]; A_typeId_355[this_894] = 2; }; return this_894; } function dispatch_A_test_A_foo952(integer this124) { if (A_typeId_355[this_124] == 0) { if (this_124 == 0) { error411("Nullpointer exception when calling A.foo"); } else { error411("Called A.foo on invalid object."); }; } else { }; B_foo191(this_124); }