array C_nextFree885 integer C_firstFree151 integer C_maxIndex152 array C_typeId188 integer C_firstFree151 = 0 integer C_maxIndex152 = 0 function initGlobals208() { } function main171() { initGlobals208(); init_test415(); } function config132() { } function init_test415() { if (dispatch_C_test_C_foo501(new_E148()) == 4) { testSuccess161(); } else { }; } IS_NATIVE function testSuccess161() { } function C_foo312(integer this140) returns integer { return 3; } function C_init898(integer this132) { } function construct_C657(integer this134) { C_init898(this_134); } function D_init151(integer this327) { } function construct_D227(integer this202) { construct_C657(this_202); D_init151(this_202); } function E_foo137(integer this178) returns integer { return 4; } function E_init816(integer this198) { } function new_E148() returns integer { local integer this704 this_704 = alloc_E153(); construct_E182(this_704); return this_704; } function construct_E182(integer this536) { construct_D227(this_536); E_init816(this_536); } function error364(string msg883) { $debugPrint348((msg_883 + (" " + #getStackTrace()))); } function alloc_E153() returns integer { local integer this953 if (C_firstFree_151 == 0) { if (C_maxIndex_152 < 32768) { C_maxIndex_152 = (C_maxIndex_152 + 1); this_953 = C_maxIndex_152; C_typeId_188[this_953] = 3; } else { error364("Out of memory: Could not create E."); this_953 = 0; }; } else { C_firstFree_151 = (C_firstFree_151 - 1); this_953 = C_nextFree_885[C_firstFree_151]; C_typeId_188[this_953] = 3; }; return this_953; } function dispatch_C_test_C_foo501(integer this150) returns integer { if (C_typeId_188[this_150] == 0) { if (this_150 == 0) { error364("Nullpointer exception when calling C.foo"); } else { error364("Called C.foo on invalid object."); }; } else { }; if (C_typeId_188[this_150] <= 2) { this_150 = C_foo312(this_150); } else { this_150 = E_foo137(this_150); }; return this_150; }