array C_nextFree186 integer C_firstFree970 integer C_maxIndex102 array C_typeId455 integer C_firstFree970 = 0 integer C_maxIndex102 = 0 function initGlobals702() { } function main132() { initGlobals702(); init_test817(); } function config183() { } function init_test817() { if (dispatch_D_test_D_bla395(new_E615()) == 4) { testSuccess844(); } else { }; } IS_NATIVE function testSuccess844() { } function C_foo104(integer this833) returns integer { return 3; } function C_init159(integer this488) { } function construct_C183(integer this173) { C_init159(this_173); } function D_bla174(integer this158) returns integer { return dispatch_C_test_C_foo137(this_158); } function D_init739(integer this125) { } function construct_D207(integer this116) { construct_C183(this_116); D_init739(this_116); } function E_foo469(integer this146) returns integer { return 4; } function E_init133(integer this110) { } function new_E615() returns integer { local integer this498 this_498 = alloc_E316(); construct_E308(this_498); return this_498; } function construct_E308(integer this383) { construct_D207(this_383); E_init133(this_383); } function error782(string msg115) { $debugPrint899((msg_115 + (" " + #getStackTrace()))); } function alloc_E316() returns integer { local integer this136 if (C_firstFree_970 == 0) { if (C_maxIndex_102 < 32768) { C_maxIndex_102 = (C_maxIndex_102 + 1); this_136 = C_maxIndex_102; C_typeId_455[this_136] = 3; } else { error782("Out of memory: Could not create E."); this_136 = 0; }; } else { C_firstFree_970 = (C_firstFree_970 - 1); this_136 = C_nextFree_186[C_firstFree_970]; C_typeId_455[this_136] = 3; }; return this_136; } function dispatch_C_test_C_foo137(integer this878) returns integer { if (C_typeId_455[this_878] == 0) { if (this_878 == 0) { error782("Nullpointer exception when calling C.foo"); } else { error782("Called C.foo on invalid object."); }; } else { }; if (C_typeId_455[this_878] <= 2) { this_878 = C_foo104(this_878); } else { this_878 = E_foo469(this_878); }; return this_878; } function dispatch_D_test_D_bla395(integer this185) returns integer { if (C_typeId_455[this_185] == 0) { if (this_185 == 0) { error782("Nullpointer exception when calling D.bla"); } else { error782("Called D.bla on invalid object."); }; } else { }; return D_bla174(this_185); }