array A_nextFree207 integer A_firstFree100 integer A_maxIndex137 array Func_nextFree162 integer Func_firstFree104 integer Func_maxIndex257 array Func_typeId756 array A_f201 integer A_firstFree100 = 0 integer A_maxIndex137 = 0 integer Func_firstFree104 = 0 integer Func_maxIndex257 = 0 function initGlobals548() { } function main310() { initGlobals548(); init_test545(); } function config131() { } function init_test545() { if (dispatch_Func_test_Func_apply202(A_f_201[new_A129()], 3) == 4) { testSuccess201(); } else { }; } IS_NATIVE function testSuccess201() { } function A_init162(integer this458) { local integer clVar658 clVar_658 = alloc_Func_A_test167(); A_f_201[this_458] = clVar_658; } function new_A129() returns integer { local integer this172 this_172 = alloc_A201(); construct_A649(this_172); return this_172; } function construct_A649(integer this136) { A_init162(this_136); } function apply_A_test436(integer this132, integer x843) returns integer { return (x_843 + 1); } function alloc_A201() returns integer { local integer this120 if (A_firstFree_100 == 0) { if (A_maxIndex_137 < 32768) { A_maxIndex_137 = (A_maxIndex_137 + 1); this_120 = A_maxIndex_137; } else { error102("Out of memory: Could not create A."); this_120 = 0; }; } else { A_firstFree_100 = (A_firstFree_100 - 1); this_120 = A_nextFree_207[A_firstFree_100]; }; return this_120; } function error102(string msg162) { $debugPrint183((msg_162 + (" " + #getStackTrace()))); } function alloc_Func_A_test167() returns integer { local integer this165 if (Func_firstFree_104 == 0) { if (Func_maxIndex_257 < 32768) { Func_maxIndex_257 = (Func_maxIndex_257 + 1); this_165 = Func_maxIndex_257; Func_typeId_756[this_165] = 3; } else { error102("Out of memory: Could not create Func_A_test."); this_165 = 0; }; } else { Func_firstFree_104 = (Func_firstFree_104 - 1); this_165 = Func_nextFree_162[Func_firstFree_104]; Func_typeId_756[this_165] = 3; }; return this_165; } function dispatch_Func_test_Func_apply202(integer this119, integer x174) returns integer { if (Func_typeId_756[this_119] == 0) { if (this_119 == 0) { error102("Nullpointer exception when calling Func.apply"); } else { error102("Called Func.apply on invalid object."); }; } else { }; return apply_A_test436(this_119, x_174); }