array C_nextFree897 integer C_firstFree589 integer C_maxIndex194 array C_typeId212 integer C_firstFree589 = 0 integer C_maxIndex194 = 0 function initGlobals175() { C_firstFree_589 = 0; C_maxIndex_194 = 0; } function main769() { initGlobals175(); init_test197(); } function config377() { } function init_test197() { if (dispatch_D_test_D_foo198(new_D132()) == 4) { testSuccess567(); } else { }; } IS_NATIVE function testSuccess567() { } function C_init187(integer this200) { } function construct_C831(integer this161) { C_init187(this_161); } function D_foo170(integer this212) returns integer { return 4; } function D_init405(integer this174) { } function new_D132() returns integer { local integer this192 this_192 = alloc_D123(); construct_D179(this_192); return this_192; } function construct_D179(integer this203) { construct_C831(this_203); D_init405(this_203); } function error177(string msg825) { $debugPrint167((msg_825 + (" " + #getStackTrace()))); } function alloc_D123() returns integer { local integer this208 if (C_firstFree_589 == 0) { if (C_maxIndex_194 < 32768) { C_maxIndex_194 = (C_maxIndex_194 + 1); this_208 = C_maxIndex_194; C_typeId_212[this_208] = 2; } else { error177("Out of memory: Could not create D."); this_208 = 0; }; } else { C_firstFree_589 = (C_firstFree_589 - 1); this_208 = C_nextFree_897[C_firstFree_589]; C_typeId_212[this_208] = 2; }; return this_208; } function dispatch_D_test_D_foo198(integer this106) returns integer { local integer test_D_foo_result174 if (C_typeId_212[this_106] == 0) { if (this_106 == 0) { error177("Nullpointer exception when calling D.foo"); } else { error177("Called D.foo on invalid object."); }; } else { }; test_D_foo_result_174 = D_foo170(this_106); return test_D_foo_result_174; }