array C_nextFree210 integer C_firstFree341 integer C_maxIndex892 array C_typeId110 array SimpleFunc_nextFree290 integer SimpleFunc_firstFree114 integer SimpleFunc_maxIndex585 array SimpleFunc_typeId303 array C_y290 array this686 integer C_firstFree341 = 0 integer C_maxIndex892 = 0 integer SimpleFunc_firstFree114 = 0 integer SimpleFunc_maxIndex585 = 0 function initGlobals207() { } function main117() { initGlobals207(); init_test750(); } function config103() { } function init_test750() { local integer c734 new_C949(); c_734 = new_C949(); C_y_290[c_734] = 4; dispatch_C_test_C_foo125(c_734); } IS_NATIVE function testSuccess153() { } function C_foo164(integer this268) { local integer clVar182 clVar_182 = alloc_SimpleFunc_bar_C_test140(); this_686[clVar_182] = this_268; dispatch_C_test_C_bar436(this_268, clVar_182); } function C_x140(integer this197) returns integer { return 3; } function C_bar678(integer this141, integer f914) { if (dispatch_SimpleFunc_test_SimpleFunc_apply206(f_914) == 7) { testSuccess153(); } else { }; } function C_init141(integer this184) { } function new_C949() returns integer { local integer this149 this_149 = alloc_C202(); construct_C561(this_149); return this_149; } function construct_C561(integer this642) { C_init141(this_642); } function apply_bar_C_test501(integer this210) returns integer { return (dispatch_C_test_C_x102(this_686[this_210]) + C_y_290[this_686[this_210]]); } function alloc_C202() returns integer { local integer this370 if (C_firstFree_341 == 0) { if (C_maxIndex_892 < 32768) { C_maxIndex_892 = (C_maxIndex_892 + 1); this_370 = C_maxIndex_892; C_typeId_110[this_370] = 1; } else { error888("Out of memory: Could not create C."); this_370 = 0; }; } else { C_firstFree_341 = (C_firstFree_341 - 1); this_370 = C_nextFree_210[C_firstFree_341]; C_typeId_110[this_370] = 1; }; return this_370; } function error888(string msg213) { $debugPrint192((msg_213 + (" " + #getStackTrace()))); } function alloc_SimpleFunc_bar_C_test140() returns integer { local integer this849 if (SimpleFunc_firstFree_114 == 0) { if (SimpleFunc_maxIndex_585 < 32768) { SimpleFunc_maxIndex_585 = (SimpleFunc_maxIndex_585 + 1); this_849 = SimpleFunc_maxIndex_585; SimpleFunc_typeId_303[this_849] = 3; } else { error888("Out of memory: Could not create SimpleFunc_bar_C_test."); this_849 = 0; }; } else { SimpleFunc_firstFree_114 = (SimpleFunc_firstFree_114 - 1); this_849 = SimpleFunc_nextFree_290[SimpleFunc_firstFree_114]; SimpleFunc_typeId_303[this_849] = 3; }; return this_849; } function dispatch_C_test_C_foo125(integer this615) { if (C_typeId_110[this_615] == 0) { if (this_615 == 0) { error888("Nullpointer exception when calling C.foo"); } else { error888("Called C.foo on invalid object."); }; } else { }; C_foo164(this_615); } function dispatch_C_test_C_bar436(integer this142, integer f833) { if (C_typeId_110[this_142] == 0) { if (this_142 == 0) { error888("Nullpointer exception when calling C.bar"); } else { error888("Called C.bar on invalid object."); }; } else { }; C_bar678(this_142, f_833); } function dispatch_C_test_C_x102(integer this935) returns integer { if (C_typeId_110[this_935] == 0) { if (this_935 == 0) { error888("Nullpointer exception when calling C.x"); } else { error888("Called C.x on invalid object."); }; } else { }; return C_x140(this_935); } function dispatch_SimpleFunc_test_SimpleFunc_apply206(integer this861) returns integer { if (SimpleFunc_typeId_303[this_861] == 0) { if (this_861 == 0) { error888("Nullpointer exception when calling SimpleFunc.apply"); } else { error888("Called SimpleFunc.apply on invalid object."); }; } else { }; return apply_bar_C_test501(this_861); }