array I_nextFree632 integer I_firstFree826 integer I_maxIndex211 array I_typeId182 integer I_firstFree826 = 0 integer I_maxIndex211 = 0 function initGlobals103() { } function main143() { initGlobals103(); init_test903(); } function config311() { } function init_test903() { local integer b175 local integer c100 local integer d207 local integer this108 local integer test_B_foo_result171 b_175 = new_B159(); c_100 = new_C115(); d_207 = new_D149(); this_108 = b_175; if (I_typeId_182[this_108] == 0) { if (this_108 == 0) { error351("Nullpointer exception when calling B.foo"); } else { error351("Called B.foo on invalid object."); }; } else { }; test_B_foo_result_171 = 2; if (((test_B_foo_result_171 == 2) and (dispatch_I_test_I_foo179(c_100) == 5)) and (dispatch_I_test_I_foo179(d_207) == 3)) { testSuccess134(); } else { }; } IS_NATIVE function testSuccess134() { } function new_B159() returns integer { local integer this169 local integer this104 if (I_firstFree_826 == 0) { if (I_maxIndex_211 < 32768) { I_maxIndex_211 = (I_maxIndex_211 + 1); this_104 = I_maxIndex_211; I_typeId_182[this_104] = 2; } else { error351("Out of memory: Could not create B."); this_104 = 0; }; } else { I_firstFree_826 = (I_firstFree_826 - 1); this_104 = I_nextFree_632[I_firstFree_826]; I_typeId_182[this_104] = 2; }; this_169 = this_104; return this_169; } function new_C115() returns integer { local integer this114 local integer this206 if (I_firstFree_826 == 0) { if (I_maxIndex_211 < 32768) { I_maxIndex_211 = (I_maxIndex_211 + 1); this_206 = I_maxIndex_211; I_typeId_182[this_206] = 3; } else { error351("Out of memory: Could not create C."); this_206 = 0; }; } else { I_firstFree_826 = (I_firstFree_826 - 1); this_206 = I_nextFree_632[I_firstFree_826]; I_typeId_182[this_206] = 3; }; this_114 = this_206; return this_114; } function new_D149() returns integer { local integer this191 local integer this418 if (I_firstFree_826 == 0) { if (I_maxIndex_211 < 32768) { I_maxIndex_211 = (I_maxIndex_211 + 1); this_418 = I_maxIndex_211; I_typeId_182[this_418] = 4; } else { error351("Out of memory: Could not create D."); this_418 = 0; }; } else { I_firstFree_826 = (I_firstFree_826 - 1); this_418 = I_nextFree_632[I_firstFree_826]; I_typeId_182[this_418] = 4; }; this_191 = this_418; return this_191; } function error351(string msg201) { $debugPrint192((msg_201 + (" " + #getStackTrace()))); } function dispatch_I_test_I_foo179(integer this100) returns integer { local integer test_I_foo_result302 local integer this104 local integer this200 if (I_typeId_182[this_100] == 0) { if (this_100 == 0) { error351("Nullpointer exception when calling I.foo"); } else { error351("Called I.foo on invalid object."); }; } else { }; if (I_typeId_182[this_100] <= 2) { if (I_typeId_182[this_100] <= 1) { this_104 = this_100; test_I_foo_result_302 = dispatch_I_test_I_bar105(this_104); } else { test_I_foo_result_302 = 2; }; } else { this_200 = this_100; test_I_foo_result_302 = dispatch_I_test_I_bar105(this_200); }; return test_I_foo_result_302; } function dispatch_I_test_I_bar105(integer this209) returns integer { local integer test_I_bar_result144 if (I_typeId_182[this_209] == 0) { if (this_209 == 0) { error351("Nullpointer exception when calling I.bar"); } else { error351("Called I.bar on invalid object."); }; } else { }; if (I_typeId_182[this_209] <= 3) { test_I_bar_result_144 = 5; } else { test_I_bar_result_144 = 3; }; return test_I_bar_result_144; }