array A_nextFree331 integer A_firstFree940 integer A_maxIndex918 array A_typeId878 integer A_firstFree940 = 0 integer A_maxIndex918 = 0 function initGlobals274() { } function main119() { initGlobals274(); init_test149(); } function config170() { } function init_test149() { if (dispatch_A_test_A_foo333(new_B178()) == 42) { testSuccess121(); } else { }; } IS_NATIVE function testSuccess121() { } function A_foo126(integer this754) returns integer { return 42; } function A_init186(integer this948) { } function construct_A639(integer this896) { A_init186(this_896); } function B_init141(integer this107) { } function new_B178() returns integer { local integer this209 this_209 = alloc_B137(); construct_B894(this_209); return this_209; } function construct_B894(integer this136) { construct_A639(this_136); B_init141(this_136); } function error213(string msg499) { $debugPrint202((msg_499 + (" " + #getStackTrace()))); } function alloc_B137() returns integer { local integer this441 if (A_firstFree_940 == 0) { if (A_maxIndex_918 < 32768) { A_maxIndex_918 = (A_maxIndex_918 + 1); this_441 = A_maxIndex_918; A_typeId_878[this_441] = 2; } else { error213("Out of memory: Could not create B."); this_441 = 0; }; } else { A_firstFree_940 = (A_firstFree_940 - 1); this_441 = A_nextFree_331[A_firstFree_940]; A_typeId_878[this_441] = 2; }; return this_441; } function dispatch_A_test_A_foo333(integer this206) returns integer { if (A_typeId_878[this_206] == 0) { if (this_206 == 0) { error213("Nullpointer exception when calling A.foo"); } else { error213("Called A.foo on invalid object."); }; } else { }; return A_foo126(this_206); }