array C_nextFree395 integer C_firstFree192 integer C_maxIndex165 array C_typeId339 integer C_firstFree192 = 0 integer C_maxIndex165 = 0 function initGlobals128() { } function main124() { initGlobals128(); init_test336(); } function config532() { } function init_test336() { local integer c957 local integer d784 c_957 = new_C558(); d_784 = new_D146(); if (((dispatch_C_test_C_foo_2152(c_957, 1, 2) == 3) and (dispatch_C_test_C_foo_2152(d_784, 1, 2) == 2)) and (dispatch_C_test_C_foo_4571(d_784, 1, 2, 3, 4) == 24)) { testSuccess131(); } else { }; } IS_NATIVE function testSuccess131() { } function new_C558() returns integer { local integer this330 if (C_firstFree_192 == 0) { if (C_maxIndex_165 < 32768) { C_maxIndex_165 = (C_maxIndex_165 + 1); this_330 = C_maxIndex_165; C_typeId_339[this_330] = 1; } else { error687("Out of memory: Could not create C."); this_330 = 0; }; } else { C_firstFree_192 = (C_firstFree_192 - 1); this_330 = C_nextFree_395[C_firstFree_192]; C_typeId_339[this_330] = 1; }; return this_330; } function new_D146() returns integer { local integer this124 if (C_firstFree_192 == 0) { if (C_maxIndex_165 < 32768) { C_maxIndex_165 = (C_maxIndex_165 + 1); this_124 = C_maxIndex_165; C_typeId_339[this_124] = 2; } else { error687("Out of memory: Could not create D."); this_124 = 0; }; } else { C_firstFree_192 = (C_firstFree_192 - 1); this_124 = C_nextFree_395[C_firstFree_192]; C_typeId_339[this_124] = 2; }; return this_124; } function error687(string msg131) { $debugPrint175((msg_131 + (" " + #getStackTrace()))); } function dispatch_C_test_C_foo_2152(integer this174, integer xs_0151, integer xs_1960) returns integer { if (C_typeId_339[this_174] == 0) { if (this_174 == 0) { error687("Nullpointer exception when calling C.foo"); } else { error687("Called C.foo on invalid object."); }; } else { }; if (C_typeId_339[this_174] <= 1) { this_174 = ((0 + xs_0_151) + xs_1_960); } else { this_174 = ((1 * xs_0_151) * xs_1_960); }; return this_174; } function dispatch_C_test_C_foo_4571(integer this713, integer xs_0115, integer xs_1201, integer xs_2580, integer xs_3170) returns integer { if (C_typeId_339[this_713] == 0) { if (this_713 == 0) { error687("Nullpointer exception when calling C.foo"); } else { error687("Called C.foo on invalid object."); }; } else { }; if (C_typeId_339[this_713] <= 1) { this_713 = ((((0 + xs_0_115) + xs_1_201) + xs_2_580) + xs_3_170); } else { this_713 = ((((1 * xs_0_115) * xs_1_201) * xs_2_580) * xs_3_170); }; return this_713; }