array I_nextFree365 integer I_firstFree129 integer I_maxIndex569 array I_typeId152 integer I_firstFree129 = 0 integer I_maxIndex569 = 0 function initGlobals522() { } function main185() { initGlobals522(); init_test138(); } function config719() { } function init_test138() { local integer b197 local integer c154 local integer d295 local boolean andLeft115 b_197 = new_B116(); c_154 = new_C208(); d_295 = new_D373(); if (I_typeId_152[b_197] == 0) { if (b_197 == 0) { error126("Nullpointer exception when calling B.foo"); } else { error126("Called B.foo on invalid object."); }; } else { }; if (dispatch_I_test_I_foo443(c_154) == 5) { if (I_typeId_152[d_295] == 0) { if (d_295 == 0) { error126("Nullpointer exception when calling D.foo"); } else { error126("Called D.foo on invalid object."); }; } else { }; andLeft_115 = true; } else { andLeft_115 = false; }; if andLeft_115 { testSuccess144(); } else { }; } IS_NATIVE function testSuccess144() { } function new_B116() returns integer { local integer this631 if (I_firstFree_129 == 0) { if (I_maxIndex_569 < 32768) { I_maxIndex_569 = (I_maxIndex_569 + 1); this_631 = I_maxIndex_569; I_typeId_152[this_631] = 2; } else { error126("Out of memory: Could not create B."); this_631 = 0; }; } else { I_firstFree_129 = (I_firstFree_129 - 1); this_631 = I_nextFree_365[I_firstFree_129]; I_typeId_152[this_631] = 2; }; return this_631; } function new_C208() returns integer { local integer this412 if (I_firstFree_129 == 0) { if (I_maxIndex_569 < 32768) { I_maxIndex_569 = (I_maxIndex_569 + 1); this_412 = I_maxIndex_569; I_typeId_152[this_412] = 3; } else { error126("Out of memory: Could not create C."); this_412 = 0; }; } else { I_firstFree_129 = (I_firstFree_129 - 1); this_412 = I_nextFree_365[I_firstFree_129]; I_typeId_152[this_412] = 3; }; return this_412; } function new_D373() returns integer { local integer this333 if (I_firstFree_129 == 0) { if (I_maxIndex_569 < 32768) { I_maxIndex_569 = (I_maxIndex_569 + 1); this_333 = I_maxIndex_569; I_typeId_152[this_333] = 4; } else { error126("Out of memory: Could not create D."); this_333 = 0; }; } else { I_firstFree_129 = (I_firstFree_129 - 1); this_333 = I_nextFree_365[I_firstFree_129]; I_typeId_152[this_333] = 4; }; return this_333; } function error126(string msg184) { $debugPrint214((msg_184 + (" " + #getStackTrace()))); } function dispatch_I_test_I_foo443(integer this166) returns integer { if (I_typeId_152[this_166] == 0) { if (this_166 == 0) { error126("Nullpointer exception when calling I.foo"); } else { error126("Called I.foo on invalid object."); }; } else { }; if (I_typeId_152[this_166] <= 2) { if (I_typeId_152[this_166] <= 1) { this_166 = 5; } else { this_166 = 2; }; } else { if (I_typeId_152[this_166] <= 3) { this_166 = 5; } else { this_166 = 3; }; }; return this_166; }