array C_nextFree776 integer C_firstFree759 integer C_maxIndex148 array C_typeId203 integer C_firstFree759 = 0 integer C_maxIndex148 = 0 function initGlobals572() { } function main163() { initGlobals572(); init_test193(); } function config186() { } function init_test193() { local integer c147 local integer d979 c_147 = new_C182(); d_979 = new_D898(); if (((dispatch_C_test_C_foo_2152(c_147, 1, 2) == 3) and (dispatch_C_test_C_foo_2152(d_979, 1, 2) == 2)) and (dispatch_C_test_C_foo_4210(d_979, 1, 2, 3, 4) == 24)) { testSuccess149(); } else { }; } IS_NATIVE function testSuccess149() { } function new_C182() returns integer { local integer this140 local integer this117 if (C_firstFree_759 == 0) { if (C_maxIndex_148 < 32768) { C_maxIndex_148 = (C_maxIndex_148 + 1); this_117 = C_maxIndex_148; C_typeId_203[this_117] = 1; } else { error165("Out of memory: Could not create C."); this_117 = 0; }; } else { C_firstFree_759 = (C_firstFree_759 - 1); this_117 = C_nextFree_776[C_firstFree_759]; C_typeId_203[this_117] = 1; }; this_140 = this_117; return this_140; } function new_D898() returns integer { local integer this587 local integer this158 if (C_firstFree_759 == 0) { if (C_maxIndex_148 < 32768) { C_maxIndex_148 = (C_maxIndex_148 + 1); this_158 = C_maxIndex_148; C_typeId_203[this_158] = 2; } else { error165("Out of memory: Could not create D."); this_158 = 0; }; } else { C_firstFree_759 = (C_firstFree_759 - 1); this_158 = C_nextFree_776[C_firstFree_759]; C_typeId_203[this_158] = 2; }; this_587 = this_158; return this_587; } function error165(string msg109) { $debugPrint898((msg_109 + (" " + #getStackTrace()))); } function dispatch_C_test_C_foo_2152(integer this119, integer xs_0845, integer xs_1121) returns integer { local integer test_C_foo_result190 local integer xs_0178 local integer xs_1791 local integer sum110 local integer xs_0199 local integer xs_1157 local integer prod204 if (C_typeId_203[this_119] == 0) { if (this_119 == 0) { error165("Nullpointer exception when calling C.foo"); } else { error165("Called C.foo on invalid object."); }; } else { }; if (C_typeId_203[this_119] <= 1) { xs_0_178 = xs_0_845; xs_1_791 = xs_1_121; sum_110 = 0; sum_110 = (sum_110 + xs_0_178); sum_110 = (sum_110 + xs_1_791); test_C_foo_result_190 = sum_110; } else { xs_0_199 = xs_0_845; xs_1_157 = xs_1_121; prod_204 = 1; prod_204 = (prod_204 * xs_0_199); prod_204 = (prod_204 * xs_1_157); test_C_foo_result_190 = prod_204; }; return test_C_foo_result_190; } function dispatch_C_test_C_foo_4210(integer this208, integer xs_0141, integer xs_1785, integer xs_2147, integer xs_3590) returns integer { local integer test_C_foo_result166 local integer xs_0152 local integer xs_1189 local integer xs_2487 local integer xs_3159 local integer sum129 local integer xs_0418 local integer xs_1709 local integer xs_2590 local integer xs_3213 local integer prod840 if (C_typeId_203[this_208] == 0) { if (this_208 == 0) { error165("Nullpointer exception when calling C.foo"); } else { error165("Called C.foo on invalid object."); }; } else { }; if (C_typeId_203[this_208] <= 1) { xs_0_152 = xs_0_141; xs_1_189 = xs_1_785; xs_2_487 = xs_2_147; xs_3_159 = xs_3_590; sum_129 = 0; sum_129 = (sum_129 + xs_0_152); sum_129 = (sum_129 + xs_1_189); sum_129 = (sum_129 + xs_2_487); sum_129 = (sum_129 + xs_3_159); test_C_foo_result_166 = sum_129; } else { xs_0_418 = xs_0_141; xs_1_709 = xs_1_785; xs_2_590 = xs_2_147; xs_3_213 = xs_3_590; prod_840 = 1; prod_840 = (prod_840 * xs_0_418); prod_840 = (prod_840 * xs_1_709); prod_840 = (prod_840 * xs_2_590); prod_840 = (prod_840 * xs_3_213); test_C_foo_result_166 = prod_840; }; return test_C_foo_result_166; }