array I_nextFree291 integer I_firstFree141 integer I_maxIndex167 array I_typeId327 integer I_firstFree141 = 0 integer I_maxIndex167 = 0 function initGlobals132() { } function main105() { initGlobals132(); init_test206(); } function config105() { } function init_test206() { local integer b620 local integer c114 local integer d499 b_620 = new_B227(); c_114 = new_C968(); d_499 = new_D111(); if (I_typeId_327[b_620] == 0) { if (b_620 == 0) { error616("Nullpointer exception when calling B.foo"); } else { error616("Called B.foo on invalid object."); }; } else { }; if ((dispatch_I_test_I_foo210(c_114) == 5) and (dispatch_I_test_I_foo210(d_499) == 3)) { testSuccess415(); } else { }; } IS_NATIVE function testSuccess415() { } function new_B227() returns integer { local integer this542 if (I_firstFree_141 == 0) { if (I_maxIndex_167 < 32768) { I_maxIndex_167 = (I_maxIndex_167 + 1); this_542 = I_maxIndex_167; I_typeId_327[this_542] = 2; } else { error616("Out of memory: Could not create B."); this_542 = 0; }; } else { I_firstFree_141 = (I_firstFree_141 - 1); this_542 = I_nextFree_291[I_firstFree_141]; I_typeId_327[this_542] = 2; }; return this_542; } function new_C968() returns integer { local integer this192 if (I_firstFree_141 == 0) { if (I_maxIndex_167 < 32768) { I_maxIndex_167 = (I_maxIndex_167 + 1); this_192 = I_maxIndex_167; I_typeId_327[this_192] = 3; } else { error616("Out of memory: Could not create C."); this_192 = 0; }; } else { I_firstFree_141 = (I_firstFree_141 - 1); this_192 = I_nextFree_291[I_firstFree_141]; I_typeId_327[this_192] = 3; }; return this_192; } function new_D111() returns integer { local integer this198 if (I_firstFree_141 == 0) { if (I_maxIndex_167 < 32768) { I_maxIndex_167 = (I_maxIndex_167 + 1); this_198 = I_maxIndex_167; I_typeId_327[this_198] = 4; } else { error616("Out of memory: Could not create D."); this_198 = 0; }; } else { I_firstFree_141 = (I_firstFree_141 - 1); this_198 = I_nextFree_291[I_firstFree_141]; I_typeId_327[this_198] = 4; }; return this_198; } function error616(string msg763) { $debugPrint772((msg_763 + (" " + #getStackTrace()))); } function dispatch_I_test_I_foo210(integer this212) returns integer { if (I_typeId_327[this_212] == 0) { if (this_212 == 0) { error616("Nullpointer exception when calling I.foo"); } else { error616("Called I.foo on invalid object."); }; } else { }; if (I_typeId_327[this_212] <= 2) { if (I_typeId_327[this_212] <= 1) { this_212 = dispatch_I_test_I_bar372(this_212); } else { this_212 = 2; }; } else { this_212 = dispatch_I_test_I_bar372(this_212); }; return this_212; } function dispatch_I_test_I_bar372(integer this166) returns integer { if (I_typeId_327[this_166] == 0) { if (this_166 == 0) { error616("Nullpointer exception when calling I.bar"); } else { error616("Called I.bar on invalid object."); }; } else { }; if (I_typeId_327[this_166] <= 3) { this_166 = 5; } else { this_166 = 3; }; return this_166; }