array I_nextFree496 integer I_firstFree547 integer I_maxIndex603 array I_typeId100 integer I_firstFree547 = 0 integer I_maxIndex603 = 0 function initGlobals120() { } function main906() { initGlobals120(); init_test121(); } function config205() { } function init_test121() { local integer b179 local integer c969 local integer d121 b_179 = new_B114(); c_969 = new_C233(); d_121 = new_D103(); if (I_typeId_100[b_179] == 0) { if (b_179 == 0) { error169("Nullpointer exception when calling B.foo"); } else { error169("Called B.foo on invalid object."); }; } else { }; if ((dispatch_I_test_I_foo806(c_969) == 5) and (dispatch_I_test_I_foo806(d_121) == 3)) { testSuccess576(); } else { }; } IS_NATIVE function testSuccess576() { } function new_B114() returns integer { local integer this101 if (I_firstFree_547 == 0) { if (I_maxIndex_603 < 32768) { I_maxIndex_603 = (I_maxIndex_603 + 1); this_101 = I_maxIndex_603; I_typeId_100[this_101] = 2; } else { error169("Out of memory: Could not create B."); this_101 = 0; }; } else { I_firstFree_547 = (I_firstFree_547 - 1); this_101 = I_nextFree_496[I_firstFree_547]; I_typeId_100[this_101] = 2; }; return this_101; } function new_C233() returns integer { local integer this162 if (I_firstFree_547 == 0) { if (I_maxIndex_603 < 32768) { I_maxIndex_603 = (I_maxIndex_603 + 1); this_162 = I_maxIndex_603; I_typeId_100[this_162] = 3; } else { error169("Out of memory: Could not create C."); this_162 = 0; }; } else { I_firstFree_547 = (I_firstFree_547 - 1); this_162 = I_nextFree_496[I_firstFree_547]; I_typeId_100[this_162] = 3; }; return this_162; } function new_D103() returns integer { local integer this183 if (I_firstFree_547 == 0) { if (I_maxIndex_603 < 32768) { I_maxIndex_603 = (I_maxIndex_603 + 1); this_183 = I_maxIndex_603; I_typeId_100[this_183] = 4; } else { error169("Out of memory: Could not create D."); this_183 = 0; }; } else { I_firstFree_547 = (I_firstFree_547 - 1); this_183 = I_nextFree_496[I_firstFree_547]; I_typeId_100[this_183] = 4; }; return this_183; } function error169(string msg206) { $debugPrint350((msg_206 + (" " + #getStackTrace()))); } function dispatch_I_test_I_foo806(integer this188) returns integer { if (I_typeId_100[this_188] == 0) { if (this_188 == 0) { error169("Nullpointer exception when calling I.foo"); } else { error169("Called I.foo on invalid object."); }; } else { }; if (I_typeId_100[this_188] <= 2) { if (I_typeId_100[this_188] <= 1) { this_188 = dispatch_I_test_I_bar886(this_188); } else { this_188 = 2; }; } else { this_188 = dispatch_I_test_I_bar886(this_188); }; return this_188; } function dispatch_I_test_I_bar886(integer this147) returns integer { if (I_typeId_100[this_147] == 0) { if (this_147 == 0) { error169("Nullpointer exception when calling I.bar"); } else { error169("Called I.bar on invalid object."); }; } else { }; if (I_typeId_100[this_147] <= 3) { this_147 = 5; } else { this_147 = 3; }; return this_147; }