array A_nextFree748 integer A_firstFree834 integer A_maxIndex563 array A_typeId743 integer A_firstFree834 = 0 integer A_maxIndex563 = 0 function initGlobals208() { A_firstFree_834 = 0; A_maxIndex_563 = 0; } function main163() { initGlobals208(); init_test443(); } function config220() { } function init_test443() { local integer b271 local integer a107 b_271 = new_C148(); a_107 = b_271; if (dispatch_A_test_A_f1567(a_107) == 3) { testSuccess455(); } else { }; } IS_NATIVE function testSuccess455() { } function C_f1123(integer this742) returns integer { return 3; } function C_init302(integer this648) { } function new_C148() returns integer { local integer this525 this_525 = alloc_C211(); construct_C116(this_525); return this_525; } function construct_C116(integer this820) { C_init302(this_820); } function error149(string msg289) { $debugPrint201((msg_289 + (" " + #getStackTrace()))); } function alloc_C211() returns integer { local integer this213 if (A_firstFree_834 == 0) { if (A_maxIndex_563 < 32768) { A_maxIndex_563 = (A_maxIndex_563 + 1); this_213 = A_maxIndex_563; A_typeId_743[this_213] = 3; } else { error149("Out of memory: Could not create C."); this_213 = 0; }; } else { A_firstFree_834 = (A_firstFree_834 - 1); this_213 = A_nextFree_748[A_firstFree_834]; A_typeId_743[this_213] = 3; }; return this_213; } function dispatch_A_test_A_f1567(integer this164) returns integer { local integer test_A_f1_result103 if (A_typeId_743[this_164] == 0) { if (this_164 == 0) { error149("Nullpointer exception when calling A.f1"); } else { error149("Called A.f1 on invalid object."); }; } else { }; test_A_f1_result_103 = C_f1123(this_164); return test_A_f1_result_103; }