array C_nextFree478 integer C_firstFree953 integer C_maxIndex273 array C_typeId106 integer C_firstFree953 = 0 integer C_maxIndex273 = 0 function initGlobals373() { } function main101() { initGlobals373(); init_test157(); } function config702() { } function init_test157() { if (dispatch_D_test_D_foo191(new_D192()) == 4) { testSuccess675(); } else { }; } IS_NATIVE function testSuccess675() { } function C_init130(integer this166) { } function construct_C631(integer this982) { C_init130(this_982); } function D_foo102(integer this174) returns integer { return 4; } function D_init838(integer this404) { } function new_D192() returns integer { local integer this135 this_135 = alloc_D159(); construct_D175(this_135); return this_135; } function construct_D175(integer this832) { construct_C631(this_832); D_init838(this_832); } function error187(string msg633) { $debugPrint267((msg_633 + (" " + #getStackTrace()))); } function alloc_D159() returns integer { local integer this166 if (C_firstFree_953 == 0) { if (C_maxIndex_273 < 32768) { C_maxIndex_273 = (C_maxIndex_273 + 1); this_166 = C_maxIndex_273; C_typeId_106[this_166] = 2; } else { error187("Out of memory: Could not create D."); this_166 = 0; }; } else { C_firstFree_953 = (C_firstFree_953 - 1); this_166 = C_nextFree_478[C_firstFree_953]; C_typeId_106[this_166] = 2; }; return this_166; } function dispatch_D_test_D_foo191(integer this133) returns integer { if (C_typeId_106[this_133] == 0) { if (this_133 == 0) { error187("Nullpointer exception when calling D.foo"); } else { error187("Called D.foo on invalid object."); }; } else { }; return D_foo102(this_133); }