integer test_i111 array A_nextFree274 integer A_firstFree863 integer A_maxIndex373 array A_typeId141 integer A_firstFree863 = 0 integer A_maxIndex373 = 0 function initGlobals570() { A_firstFree_863 = 0; A_maxIndex_373 = 0; } function main191() { initGlobals570(); init_test934(); } function config156() { } function init_test934() { local integer b208 b_208 = new_B177(); dispatch_A_test_A_foo181(b_208); if (test_i_111 == 8) { testSuccess859(); } else { }; } IS_NATIVE function testSuccess859() { } function A_init185(integer this415) { } function construct_A163(integer this199) { A_init185(this_199); } function B_foo137(integer this568) { test_i_111 = 8; } function B_init142(integer this365) { } function new_B177() returns integer { local integer this108 this_108 = alloc_B186(); construct_B190(this_108); return this_108; } function construct_B190(integer this557) { construct_A163(this_557); B_init142(this_557); } function error446(string msg299) { $debugPrint180((msg_299 + (" " + #getStackTrace()))); } function alloc_B186() returns integer { local integer this688 if (A_firstFree_863 == 0) { if (A_maxIndex_373 < 32768) { A_maxIndex_373 = (A_maxIndex_373 + 1); this_688 = A_maxIndex_373; A_typeId_141[this_688] = 2; } else { error446("Out of memory: Could not create B."); this_688 = 0; }; } else { A_firstFree_863 = (A_firstFree_863 - 1); this_688 = A_nextFree_274[A_firstFree_863]; A_typeId_141[this_688] = 2; }; return this_688; } function dispatch_A_test_A_foo181(integer this233) { if (A_typeId_141[this_233] == 0) { if (this_233 == 0) { error446("Nullpointer exception when calling A.foo"); } else { error446("Called A.foo on invalid object."); }; } else { }; B_foo137(this_233); }