array A_nextFree129 integer A_firstFree148 integer A_maxIndex182 array A_typeId369 integer A_firstFree148 = 0 integer A_maxIndex182 = 0 function initGlobals506() { } function main806() { initGlobals506(); init_test202(); } function config691() { } function init_test202() { if (dispatch_A_test_A_foo203(new_B498()) == 42) { testSuccess178(); } else { }; } IS_NATIVE function testSuccess178() { } function A_foo165(integer this165) returns integer { return 42; } function A_init529(integer this544) { } function construct_A323(integer this195) { A_init529(this_195); } function B_init656(integer this151) { } function new_B498() returns integer { local integer this332 this_332 = alloc_B113(); construct_B304(this_332); return this_332; } function construct_B304(integer this166) { construct_A323(this_166); B_init656(this_166); } function error151(string msg142) { $debugPrint990((msg_142 + (" " + #getStackTrace()))); } function alloc_B113() returns integer { local integer this187 if (A_firstFree_148 == 0) { if (A_maxIndex_182 < 32768) { A_maxIndex_182 = (A_maxIndex_182 + 1); this_187 = A_maxIndex_182; A_typeId_369[this_187] = 2; } else { error151("Out of memory: Could not create B."); this_187 = 0; }; } else { A_firstFree_148 = (A_firstFree_148 - 1); this_187 = A_nextFree_129[A_firstFree_148]; A_typeId_369[this_187] = 2; }; return this_187; } function dispatch_A_test_A_foo203(integer this190) returns integer { if (A_typeId_369[this_190] == 0) { if (this_190 == 0) { error151("Nullpointer exception when calling A.foo"); } else { error151("Called A.foo on invalid object."); }; } else { }; return A_foo165(this_190); }