array C_nextFree158 integer C_firstFree192 integer C_maxIndex923 array C_typeId453 integer C_firstFree192 = 0 integer C_maxIndex923 = 0 function initGlobals191() { } function main115() { initGlobals191(); init_test127(); } function config206() { } function init_test127() { if (dispatch_C_test_C_bar103(new_D168()) == 4) { testSuccess601(); } else { }; } IS_NATIVE function testSuccess601() { } function C_bar163(integer this165) returns integer { return dispatch_C_test_C_foo685(this_165); } function C_foo102(integer this170) returns integer { return 3; } function C_init544(integer this361) { } function construct_C189(integer this191) { C_init544(this_191); } function D_foo220(integer this757) returns integer { return 4; } function D_init436(integer this159) { } function new_D168() returns integer { local integer this174 this_174 = alloc_D494(); construct_D180(this_174); return this_174; } function construct_D180(integer this143) { construct_C189(this_143); D_init436(this_143); } function error999(string msg106) { $debugPrint837((msg_106 + (" " + #getStackTrace()))); } function alloc_D494() returns integer { local integer this247 if (C_firstFree_192 == 0) { if (C_maxIndex_923 < 32768) { C_maxIndex_923 = (C_maxIndex_923 + 1); this_247 = C_maxIndex_923; C_typeId_453[this_247] = 2; } else { error999("Out of memory: Could not create D."); this_247 = 0; }; } else { C_firstFree_192 = (C_firstFree_192 - 1); this_247 = C_nextFree_158[C_firstFree_192]; C_typeId_453[this_247] = 2; }; return this_247; } function dispatch_C_test_C_bar103(integer this979) returns integer { if (C_typeId_453[this_979] == 0) { if (this_979 == 0) { error999("Nullpointer exception when calling C.bar"); } else { error999("Called C.bar on invalid object."); }; } else { }; return C_bar163(this_979); } function dispatch_C_test_C_foo685(integer this121) returns integer { if (C_typeId_453[this_121] == 0) { if (this_121 == 0) { error999("Nullpointer exception when calling C.foo"); } else { error999("Called C.foo on invalid object."); }; } else { }; if (C_typeId_453[this_121] <= 1) { this_121 = C_foo102(this_121); } else { this_121 = D_foo220(this_121); }; return this_121; }