array MyInterface_nextFree257 integer MyInterface_firstFree201 integer MyInterface_maxIndex216 array MyInterface_typeId267 integer MyInterface_firstFree201 = 0 integer MyInterface_maxIndex216 = 0 function initGlobals283() { MyInterface_firstFree_201 = 0; MyInterface_maxIndex_216 = 0; } function main147() { initGlobals283(); init_Test142(); } function config725() { } function init_Test142() { local integer a403 local integer b152 a_403 = new_MyInterfaceImpl213(); b_152 = new_MyInterfaceAbstractImpl233(); if ((dispatch_MyInterface_Test_MyInterface_getStr699(a_403) == "MyInterfaceImpl") and (dispatch_MyInterface_Test_MyInterface_getStr699(b_152) == "AAbstract")) { testSuccess185(); } else { }; } IS_NATIVE function testSuccess185() { } function MyInterfaceAbstract_getSome129(integer this897) returns string { return "AAbstract"; } function MyInterfaceAbstract_init756(integer this154) { } function construct_MyInterfaceAbstract154(integer this696) { MyInterfaceAbstract_init756(this_696); } function MyInterfaceAbstractImpl_getStr450(integer this294) returns string { return dispatch_MyInterfaceAbstract_Test_MyInterfaceAbstract_getSome209(this_294); } function MyInterfaceAbstractImpl_init165(integer this882) { } function new_MyInterfaceAbstractImpl233() returns integer { local integer this123 this_123 = alloc_MyInterfaceAbstractImpl148(); construct_MyInterfaceAbstractImpl164(this_123); return this_123; } function construct_MyInterfaceAbstractImpl164(integer this589) { construct_MyInterfaceAbstract154(this_589); MyInterfaceAbstractImpl_init165(this_589); } function MyInterfaceImpl_getStr138(integer this962) returns string { return "MyInterfaceImpl"; } function MyInterfaceImpl_init829(integer this176) { } function new_MyInterfaceImpl213() returns integer { local integer this105 this_105 = alloc_MyInterfaceImpl137(); construct_MyInterfaceImpl175(this_105); return this_105; } function construct_MyInterfaceImpl175(integer this412) { MyInterfaceImpl_init829(this_412); } function error176(string msg544) { $debugPrint196((msg_544 + (" " + #getStackTrace()))); } function alloc_MyInterfaceAbstractImpl148() returns integer { local integer this636 if (MyInterface_firstFree_201 == 0) { if (MyInterface_maxIndex_216 < 32768) { MyInterface_maxIndex_216 = (MyInterface_maxIndex_216 + 1); this_636 = MyInterface_maxIndex_216; MyInterface_typeId_267[this_636] = 3; } else { error176("Out of memory: Could not create MyInterfaceAbstractImpl."); this_636 = 0; }; } else { MyInterface_firstFree_201 = (MyInterface_firstFree_201 - 1); this_636 = MyInterface_nextFree_257[MyInterface_firstFree_201]; MyInterface_typeId_267[this_636] = 3; }; return this_636; } function alloc_MyInterfaceImpl137() returns integer { local integer this113 if (MyInterface_firstFree_201 == 0) { if (MyInterface_maxIndex_216 < 32768) { MyInterface_maxIndex_216 = (MyInterface_maxIndex_216 + 1); this_113 = MyInterface_maxIndex_216; MyInterface_typeId_267[this_113] = 4; } else { error176("Out of memory: Could not create MyInterfaceImpl."); this_113 = 0; }; } else { MyInterface_firstFree_201 = (MyInterface_firstFree_201 - 1); this_113 = MyInterface_nextFree_257[MyInterface_firstFree_201]; MyInterface_typeId_267[this_113] = 4; }; return this_113; } function dispatch_MyInterface_Test_MyInterface_getStr699(integer this159) returns string { local string Test_MyInterface_getStr_result793 if (MyInterface_typeId_267[this_159] == 0) { if (this_159 == 0) { error176("Nullpointer exception when calling MyInterface.getStr"); } else { error176("Called MyInterface.getStr on invalid object."); }; } else { }; if (MyInterface_typeId_267[this_159] <= 3) { Test_MyInterface_getStr_result_793 = MyInterfaceAbstractImpl_getStr450(this_159); } else { Test_MyInterface_getStr_result_793 = MyInterfaceImpl_getStr138(this_159); }; return Test_MyInterface_getStr_result_793; } function dispatch_MyInterfaceAbstract_Test_MyInterfaceAbstract_getSome209(integer this186) returns string { local string Test_MyInterfaceAbstract_getSome_result235 if (MyInterface_typeId_267[this_186] == 0) { if (this_186 == 0) { error176("Nullpointer exception when calling MyInterfaceAbstract.getSome"); } else { error176("Called MyInterfaceAbstract.getSome on invalid object."); }; } else { }; Test_MyInterfaceAbstract_getSome_result_235 = MyInterfaceAbstract_getSome129(this_186); return Test_MyInterfaceAbstract_getSome_result_235; }