array C_nextFree112 integer C_firstFree667 integer C_maxIndex146 array C_typeId655 array SimpleFunc_nextFree185 integer SimpleFunc_firstFree127 integer SimpleFunc_maxIndex208 array SimpleFunc_typeId154 array C_y128 array this357 integer C_firstFree667 = 0 integer C_maxIndex146 = 0 integer SimpleFunc_firstFree127 = 0 integer SimpleFunc_maxIndex208 = 0 function initGlobals148() { C_firstFree_667 = 0; C_maxIndex_146 = 0; SimpleFunc_firstFree_127 = 0; SimpleFunc_maxIndex_208 = 0; } function main127() { initGlobals148(); init_test261(); } function config439() { } function init_test261() { local integer c156 new_C149(); c_156 = new_C149(); C_y_128[c_156] = 4; dispatch_C_test_C_foo214(c_156); } IS_NATIVE function testSuccess524() { } function C_foo933(integer this973) { local integer clVar164 local integer temp290 temp_290 = this_973; clVar_164 = alloc_SimpleFunc_bar_C_test703(); this_357[clVar_164] = this_973; dispatch_C_test_C_bar172(temp_290, clVar_164); } function C_x195(integer this114) returns integer { return 3; } function C_bar187(integer this188, integer f113) { if (dispatch_SimpleFunc_test_SimpleFunc_apply174(f_113) == 7) { testSuccess524(); } else { }; } function C_init214(integer this712) { } function new_C149() returns integer { local integer this882 this_882 = alloc_C138(); construct_C117(this_882); return this_882; } function construct_C117(integer this170) { C_init214(this_170); } function apply_bar_C_test642(integer this109) returns integer { return (dispatch_C_test_C_x473(this_357[this_109]) + C_y_128[this_357[this_109]]); } function alloc_C138() returns integer { local integer this138 if (C_firstFree_667 == 0) { if (C_maxIndex_146 < 32768) { C_maxIndex_146 = (C_maxIndex_146 + 1); this_138 = C_maxIndex_146; C_typeId_655[this_138] = 1; } else { error281("Out of memory: Could not create C."); this_138 = 0; }; } else { C_firstFree_667 = (C_firstFree_667 - 1); this_138 = C_nextFree_112[C_firstFree_667]; C_typeId_655[this_138] = 1; }; return this_138; } function error281(string msg156) { $debugPrint603((msg_156 + (" " + #getStackTrace()))); } function alloc_SimpleFunc_bar_C_test703() returns integer { local integer this887 if (SimpleFunc_firstFree_127 == 0) { if (SimpleFunc_maxIndex_208 < 32768) { SimpleFunc_maxIndex_208 = (SimpleFunc_maxIndex_208 + 1); this_887 = SimpleFunc_maxIndex_208; SimpleFunc_typeId_154[this_887] = 3; } else { error281("Out of memory: Could not create SimpleFunc_bar_C_test."); this_887 = 0; }; } else { SimpleFunc_firstFree_127 = (SimpleFunc_firstFree_127 - 1); this_887 = SimpleFunc_nextFree_185[SimpleFunc_firstFree_127]; SimpleFunc_typeId_154[this_887] = 3; }; return this_887; } function dispatch_C_test_C_foo214(integer this413) { if (C_typeId_655[this_413] == 0) { if (this_413 == 0) { error281("Nullpointer exception when calling C.foo"); } else { error281("Called C.foo on invalid object."); }; } else { }; C_foo933(this_413); } function dispatch_C_test_C_bar172(integer this111, integer f123) { if (C_typeId_655[this_111] == 0) { if (this_111 == 0) { error281("Nullpointer exception when calling C.bar"); } else { error281("Called C.bar on invalid object."); }; } else { }; C_bar187(this_111, f_123); } function dispatch_C_test_C_x473(integer this585) returns integer { local integer test_C_x_result193 if (C_typeId_655[this_585] == 0) { if (this_585 == 0) { error281("Nullpointer exception when calling C.x"); } else { error281("Called C.x on invalid object."); }; } else { }; test_C_x_result_193 = C_x195(this_585); return test_C_x_result_193; } function dispatch_SimpleFunc_test_SimpleFunc_apply174(integer this727) returns integer { local integer test_SimpleFunc_apply_result777 if (SimpleFunc_typeId_154[this_727] == 0) { if (this_727 == 0) { error281("Nullpointer exception when calling SimpleFunc.apply"); } else { error281("Called SimpleFunc.apply on invalid object."); }; } else { }; test_SimpleFunc_apply_result_777 = apply_bar_C_test642(this_727); return test_SimpleFunc_apply_result_777; }