array C_nextFree197 integer C_firstFree150 integer C_maxIndex890 array C_typeId607 integer C_firstFree150 = 0 integer C_maxIndex890 = 0 function initGlobals163() { } function main484() { initGlobals163(); init_test137(); } function config864() { } function init_test137() { if (dispatch_C_test_C_foo196(new_D210()) == 3) { testSuccess456(); } else { }; } IS_NATIVE function testSuccess456() { } function C_foo145(integer this141) returns integer { return 3; } function C_init210(integer this170) { } function construct_C148(integer this111) { C_init210(this_111); } function D_init175(integer this201) { } function new_D210() returns integer { local integer this767 this_767 = alloc_D147(); construct_D213(this_767); return this_767; } function construct_D213(integer this110) { construct_C148(this_110); D_init175(this_110); } function error670(string msg134) { $debugPrint144((msg_134 + (" " + #getStackTrace()))); } function alloc_D147() returns integer { local integer this791 if (C_firstFree_150 == 0) { if (C_maxIndex_890 < 32768) { C_maxIndex_890 = (C_maxIndex_890 + 1); this_791 = C_maxIndex_890; C_typeId_607[this_791] = 2; } else { error670("Out of memory: Could not create D."); this_791 = 0; }; } else { C_firstFree_150 = (C_firstFree_150 - 1); this_791 = C_nextFree_197[C_firstFree_150]; C_typeId_607[this_791] = 2; }; return this_791; } function dispatch_C_test_C_foo196(integer this187) returns integer { if (C_typeId_607[this_187] == 0) { if (this_187 == 0) { error670("Nullpointer exception when calling C.foo"); } else { error670("Called C.foo on invalid object."); }; } else { }; return C_foo145(this_187); }