array I_nextFree181 integer I_firstFree170 integer I_maxIndex178 array I_typeId125 integer I_firstFree170 = 0 integer I_maxIndex178 = 0 function initGlobals136() { } function main144() { initGlobals136(); init_test109(); } function config125() { } function init_test109() { local integer b157 local integer c757 local integer d174 local integer this731 local integer test_B_foo_result518 local integer this424 local integer test_D_foo_result935 local boolean andLeft504 b_157 = new_B118(); c_757 = new_C153(); d_174 = new_D623(); this_731 = b_157; if (I_typeId_125[this_731] == 0) { if (this_731 == 0) { error180("Nullpointer exception when calling B.foo"); } else { error180("Called B.foo on invalid object."); }; } else { }; test_B_foo_result_518 = 2; if ((test_B_foo_result_518 == 2) and (dispatch_I_test_I_foo104(c_757) == 5)) { this_424 = d_174; if (I_typeId_125[this_424] == 0) { if (this_424 == 0) { error180("Nullpointer exception when calling D.foo"); } else { error180("Called D.foo on invalid object."); }; } else { }; test_D_foo_result_935 = 3; andLeft_504 = (test_D_foo_result_935 == 3); } else { andLeft_504 = false; }; if andLeft_504 { testSuccess145(); } else { }; } IS_NATIVE function testSuccess145() { } function new_B118() returns integer { local integer this295 local integer this413 if (I_firstFree_170 == 0) { if (I_maxIndex_178 < 32768) { I_maxIndex_178 = (I_maxIndex_178 + 1); this_413 = I_maxIndex_178; I_typeId_125[this_413] = 2; } else { error180("Out of memory: Could not create B."); this_413 = 0; }; } else { I_firstFree_170 = (I_firstFree_170 - 1); this_413 = I_nextFree_181[I_firstFree_170]; I_typeId_125[this_413] = 2; }; this_295 = this_413; return this_295; } function new_C153() returns integer { local integer this898 local integer this127 if (I_firstFree_170 == 0) { if (I_maxIndex_178 < 32768) { I_maxIndex_178 = (I_maxIndex_178 + 1); this_127 = I_maxIndex_178; I_typeId_125[this_127] = 3; } else { error180("Out of memory: Could not create C."); this_127 = 0; }; } else { I_firstFree_170 = (I_firstFree_170 - 1); this_127 = I_nextFree_181[I_firstFree_170]; I_typeId_125[this_127] = 3; }; this_898 = this_127; return this_898; } function new_D623() returns integer { local integer this488 local integer this211 if (I_firstFree_170 == 0) { if (I_maxIndex_178 < 32768) { I_maxIndex_178 = (I_maxIndex_178 + 1); this_211 = I_maxIndex_178; I_typeId_125[this_211] = 4; } else { error180("Out of memory: Could not create D."); this_211 = 0; }; } else { I_firstFree_170 = (I_firstFree_170 - 1); this_211 = I_nextFree_181[I_firstFree_170]; I_typeId_125[this_211] = 4; }; this_488 = this_211; return this_488; } function error180(string msg942) { $debugPrint197((msg_942 + (" " + #getStackTrace()))); } function dispatch_I_test_I_foo104(integer this191) returns integer { local integer test_I_foo_result125 if (I_typeId_125[this_191] == 0) { if (this_191 == 0) { error180("Nullpointer exception when calling I.foo"); } else { error180("Called I.foo on invalid object."); }; } else { }; if (I_typeId_125[this_191] <= 2) { if (I_typeId_125[this_191] <= 1) { test_I_foo_result_125 = 5; } else { test_I_foo_result_125 = 2; }; } else { if (I_typeId_125[this_191] <= 3) { test_I_foo_result_125 = 5; } else { test_I_foo_result_125 = 3; }; }; return test_I_foo_result_125; }