array I_nextFree197 integer I_firstFree870 integer I_maxIndex116 array I_typeId730 integer I_firstFree870 = 0 integer I_maxIndex116 = 0 function initGlobals132() { } function main141() { initGlobals132(); init_test105(); } function config125() { } function init_test105() { local integer b311 local integer c118 local integer d262 local boolean andLeft518 b_311 = new_B427(); c_118 = new_C802(); d_262 = new_D247(); if (I_typeId_730[b_311] == 0) { if (b_311 == 0) { error105("Nullpointer exception when calling B.foo"); } else { error105("Called B.foo on invalid object."); }; } else { }; if (dispatch_I_test_I_foo724(c_118) == 5) { if (I_typeId_730[d_262] == 0) { if (d_262 == 0) { error105("Nullpointer exception when calling D.foo"); } else { error105("Called D.foo on invalid object."); }; } else { }; andLeft_518 = true; } else { andLeft_518 = false; }; if andLeft_518 { testSuccess940(); } else { }; } IS_NATIVE function testSuccess940() { } function new_B427() returns integer { local integer this107 if (I_firstFree_870 == 0) { if (I_maxIndex_116 < 32768) { I_maxIndex_116 = (I_maxIndex_116 + 1); this_107 = I_maxIndex_116; I_typeId_730[this_107] = 2; } else { error105("Out of memory: Could not create B."); this_107 = 0; }; } else { I_firstFree_870 = (I_firstFree_870 - 1); this_107 = I_nextFree_197[I_firstFree_870]; I_typeId_730[this_107] = 2; }; return this_107; } function new_C802() returns integer { local integer this163 if (I_firstFree_870 == 0) { if (I_maxIndex_116 < 32768) { I_maxIndex_116 = (I_maxIndex_116 + 1); this_163 = I_maxIndex_116; I_typeId_730[this_163] = 3; } else { error105("Out of memory: Could not create C."); this_163 = 0; }; } else { I_firstFree_870 = (I_firstFree_870 - 1); this_163 = I_nextFree_197[I_firstFree_870]; I_typeId_730[this_163] = 3; }; return this_163; } function new_D247() returns integer { local integer this150 if (I_firstFree_870 == 0) { if (I_maxIndex_116 < 32768) { I_maxIndex_116 = (I_maxIndex_116 + 1); this_150 = I_maxIndex_116; I_typeId_730[this_150] = 4; } else { error105("Out of memory: Could not create D."); this_150 = 0; }; } else { I_firstFree_870 = (I_firstFree_870 - 1); this_150 = I_nextFree_197[I_firstFree_870]; I_typeId_730[this_150] = 4; }; return this_150; } function error105(string msg118) { $debugPrint186((msg_118 + (" " + #getStackTrace()))); } function dispatch_I_test_I_foo724(integer this309) returns integer { if (I_typeId_730[this_309] == 0) { if (this_309 == 0) { error105("Nullpointer exception when calling I.foo"); } else { error105("Called I.foo on invalid object."); }; } else { }; if (I_typeId_730[this_309] <= 2) { if (I_typeId_730[this_309] <= 1) { this_309 = 5; } else { this_309 = 2; }; } else { if (I_typeId_730[this_309] <= 3) { this_309 = 5; } else { this_309 = 3; }; }; return this_309; }