array A_nextFree761 integer A_firstFree162 integer A_maxIndex173 array A_typeId137 integer A_firstFree162 = 0 integer A_maxIndex173 = 0 function initGlobals188() { } function main194() { initGlobals188(); init_test128(); } function config114() { } function init_test128() { if (dispatch_A_test_A_foo129(new_B413()) == 42) { testSuccess190(); } else { }; } IS_NATIVE function testSuccess190() { } function A_foo196(integer this138) returns integer { return 42; } function A_init202(integer this167) { } function construct_A793(integer this115) { A_init202(this_115); } function B_init498(integer this150) { } function new_B413() returns integer { local integer this133 this_133 = alloc_B981(); construct_B854(this_133); return this_133; } function construct_B854(integer this563) { construct_A793(this_563); B_init498(this_563); } function error843(string msg299) { $debugPrint243((msg_299 + (" " + #getStackTrace()))); } function alloc_B981() returns integer { local integer this199 if (A_firstFree_162 == 0) { if (A_maxIndex_173 < 32768) { A_maxIndex_173 = (A_maxIndex_173 + 1); this_199 = A_maxIndex_173; A_typeId_137[this_199] = 2; } else { error843("Out of memory: Could not create B."); this_199 = 0; }; } else { A_firstFree_162 = (A_firstFree_162 - 1); this_199 = A_nextFree_761[A_firstFree_162]; A_typeId_137[this_199] = 2; }; return this_199; } function dispatch_A_test_A_foo129(integer this154) returns integer { if (A_typeId_137[this_154] == 0) { if (this_154 == 0) { error843("Nullpointer exception when calling A.foo"); } else { error843("Called A.foo on invalid object."); }; } else { }; return A_foo196(this_154); }