array C_nextFree617 integer C_firstFree470 integer C_maxIndex100 array C_typeId117 integer C_firstFree470 = 0 integer C_maxIndex100 = 0 function initGlobals740() { } function main303() { initGlobals740(); init_test439(); } function config106() { } function init_test439() { if (dispatch_D_test_D_foo483(new_D813()) == 4) { testSuccess152(); } else { }; } IS_NATIVE function testSuccess152() { } function C_init102(integer this591) { } function construct_C441(integer this634) { C_init102(this_634); } function D_foo727(integer this158) returns integer { return 4; } function D_init417(integer this704) { } function new_D813() returns integer { local integer this131 this_131 = alloc_D210(); construct_D733(this_131); return this_131; } function construct_D733(integer this126) { construct_C441(this_126); D_init417(this_126); } function error428(string msg429) { $debugPrint143((msg_429 + (" " + #getStackTrace()))); } function alloc_D210() returns integer { local integer this137 if (C_firstFree_470 == 0) { if (C_maxIndex_100 < 32768) { C_maxIndex_100 = (C_maxIndex_100 + 1); this_137 = C_maxIndex_100; C_typeId_117[this_137] = 2; } else { error428("Out of memory: Could not create D."); this_137 = 0; }; } else { C_firstFree_470 = (C_firstFree_470 - 1); this_137 = C_nextFree_617[C_firstFree_470]; C_typeId_117[this_137] = 2; }; return this_137; } function dispatch_D_test_D_foo483(integer this642) returns integer { if (C_typeId_117[this_642] == 0) { if (this_642 == 0) { error428("Nullpointer exception when calling D.foo"); } else { error428("Called D.foo on invalid object."); }; } else { }; return D_foo727(this_642); }