array A_nextFree483 integer A_firstFree789 integer A_maxIndex459 array A_typeId190 array C_nextFree187 integer C_firstFree133 integer C_maxIndex305 integer A_firstFree789 = 0 integer A_maxIndex459 = 0 integer C_firstFree133 = 0 integer C_maxIndex305 = 0 function initGlobals443() { A_firstFree_789 = 0; A_maxIndex_459 = 0; C_firstFree_133 = 0; C_maxIndex_305 = 0; } function main183() { initGlobals443(); init_Test659(); } function config634() { } function init_Test659() { local integer b255 b_255 = new_B308(); dispatch_A_Test_A_bla206(b_255, new_C193()); } function A_bla115(integer this162, any t136) { } function A_init118(integer this218) { } function construct_A184(integer this170) { A_init118(this_170); } function B_init149(integer this920) { } function new_B308() returns integer { local integer this176 this_176 = alloc_B188(); construct_B204(this_176); return this_176; } function construct_B204(integer this630) { construct_A184(this_630); B_init149(this_630); } function C_init125(integer this177) { } function new_C193() returns integer { local integer this206 this_206 = alloc_C117(); construct_C580(this_206); return this_206; } function construct_C580(integer this849) { C_init125(this_849); } function error156(string msg839) { $debugPrint648((msg_839 + (" " + #getStackTrace()))); } function alloc_B188() returns integer { local integer this119 if (A_firstFree_789 == 0) { if (A_maxIndex_459 < 32768) { A_maxIndex_459 = (A_maxIndex_459 + 1); this_119 = A_maxIndex_459; A_typeId_190[this_119] = 2; } else { error156("Out of memory: Could not create B."); this_119 = 0; }; } else { A_firstFree_789 = (A_firstFree_789 - 1); this_119 = A_nextFree_483[A_firstFree_789]; A_typeId_190[this_119] = 2; }; return this_119; } function alloc_C117() returns integer { local integer this153 if (C_firstFree_133 == 0) { if (C_maxIndex_305 < 32768) { C_maxIndex_305 = (C_maxIndex_305 + 1); this_153 = C_maxIndex_305; } else { error156("Out of memory: Could not create C."); this_153 = 0; }; } else { C_firstFree_133 = (C_firstFree_133 - 1); this_153 = C_nextFree_187[C_firstFree_133]; }; return this_153; } function dispatch_A_Test_A_bla206(integer this112, any t445) { if (A_typeId_190[this_112] == 0) { if (this_112 == 0) { error156("Nullpointer exception when calling A.bla"); } else { error156("Called A.bla on invalid object."); }; } else { }; A_bla115(this_112, t_445); }