array C_nextFree198 integer C_firstFree343 integer C_maxIndex201 array C_typeId187 integer C_firstFree343 = 0 integer C_maxIndex201 = 0 function initGlobals428() { } function main552() { initGlobals428(); init_test137(); } function config174() { } function init_test137() { if (dispatch_C_test_C_bar136(new_D210()) == 4) { testSuccess116(); } else { }; } IS_NATIVE function testSuccess116() { } function C_foo157(integer this134) returns integer { return 3; } function C_bar105(integer this250) returns integer { return (dispatch_C_test_C_foo567(this_250) + 1); } function C_init197(integer this740) { } function construct_C281(integer this214) { C_init197(this_214); } function D_init996(integer this121) { } function new_D210() returns integer { local integer this123 this_123 = alloc_D172(); construct_D808(this_123); return this_123; } function construct_D808(integer this997) { construct_C281(this_997); D_init996(this_997); } function error592(string msg100) { $debugPrint268((msg_100 + (" " + #getStackTrace()))); } function alloc_D172() returns integer { local integer this103 if (C_firstFree_343 == 0) { if (C_maxIndex_201 < 32768) { C_maxIndex_201 = (C_maxIndex_201 + 1); this_103 = C_maxIndex_201; C_typeId_187[this_103] = 2; } else { error592("Out of memory: Could not create D."); this_103 = 0; }; } else { C_firstFree_343 = (C_firstFree_343 - 1); this_103 = C_nextFree_198[C_firstFree_343]; C_typeId_187[this_103] = 2; }; return this_103; } function dispatch_C_test_C_foo567(integer this536) returns integer { if (C_typeId_187[this_536] == 0) { if (this_536 == 0) { error592("Nullpointer exception when calling C.foo"); } else { error592("Called C.foo on invalid object."); }; } else { }; return C_foo157(this_536); } function dispatch_C_test_C_bar136(integer this114) returns integer { if (C_typeId_187[this_114] == 0) { if (this_114 == 0) { error592("Nullpointer exception when calling C.bar"); } else { error592("Called C.bar on invalid object."); }; } else { }; return C_bar105(this_114); }