array MyInterface_nextFree156 integer MyInterface_firstFree107 integer MyInterface_maxIndex185 array MyInterface_typeId368 integer MyInterface_firstFree107 = 0 integer MyInterface_maxIndex185 = 0 function initGlobals560() { MyInterface_firstFree_107 = 0; MyInterface_maxIndex_185 = 0; } function main778() { initGlobals560(); init_Test172(); } function config240() { } function init_Test172() { local integer a157 local integer b376 a_157 = new_MyInterfaceImpl825(); b_376 = new_MyInterfaceAbstractImpl181(); if ((dispatch_MyInterface_Test_MyInterface_getStr645(a_157) == "MyInterfaceImpl") and (dispatch_MyInterface_Test_MyInterface_getStr645(b_376) == "AAbstract")) { testSuccess586(); } else { }; } IS_NATIVE function testSuccess586() { } function MyInterfaceAbstract_getSome129(integer this582) returns string { return "AAbstract"; } function MyInterfaceAbstract_init717(integer this432) { } function construct_MyInterfaceAbstract159(integer this368) { MyInterfaceAbstract_init717(this_368); } function MyInterfaceAbstractImpl_getStr819(integer this100) returns string { return dispatch_MyInterfaceAbstract_Test_MyInterfaceAbstract_getSome182(this_100); } function MyInterfaceAbstractImpl_init184(integer this945) { } function new_MyInterfaceAbstractImpl181() returns integer { local integer this101 this_101 = alloc_MyInterfaceAbstractImpl181(); construct_MyInterfaceAbstractImpl195(this_101); return this_101; } function construct_MyInterfaceAbstractImpl195(integer this388) { construct_MyInterfaceAbstract159(this_388); MyInterfaceAbstractImpl_init184(this_388); } function MyInterfaceImpl_getStr160(integer this135) returns string { return "MyInterfaceImpl"; } function MyInterfaceImpl_init166(integer this158) { } function new_MyInterfaceImpl825() returns integer { local integer this631 this_631 = alloc_MyInterfaceImpl208(); construct_MyInterfaceImpl112(this_631); return this_631; } function construct_MyInterfaceImpl112(integer this167) { MyInterfaceImpl_init166(this_167); } function error166(string msg188) { $debugPrint395((msg_188 + (" " + #getStackTrace()))); } function alloc_MyInterfaceAbstractImpl181() returns integer { local integer this746 if (MyInterface_firstFree_107 == 0) { if (MyInterface_maxIndex_185 < 32768) { MyInterface_maxIndex_185 = (MyInterface_maxIndex_185 + 1); this_746 = MyInterface_maxIndex_185; MyInterface_typeId_368[this_746] = 3; } else { error166("Out of memory: Could not create MyInterfaceAbstractImpl."); this_746 = 0; }; } else { MyInterface_firstFree_107 = (MyInterface_firstFree_107 - 1); this_746 = MyInterface_nextFree_156[MyInterface_firstFree_107]; MyInterface_typeId_368[this_746] = 3; }; return this_746; } function alloc_MyInterfaceImpl208() returns integer { local integer this281 if (MyInterface_firstFree_107 == 0) { if (MyInterface_maxIndex_185 < 32768) { MyInterface_maxIndex_185 = (MyInterface_maxIndex_185 + 1); this_281 = MyInterface_maxIndex_185; MyInterface_typeId_368[this_281] = 4; } else { error166("Out of memory: Could not create MyInterfaceImpl."); this_281 = 0; }; } else { MyInterface_firstFree_107 = (MyInterface_firstFree_107 - 1); this_281 = MyInterface_nextFree_156[MyInterface_firstFree_107]; MyInterface_typeId_368[this_281] = 4; }; return this_281; } function dispatch_MyInterface_Test_MyInterface_getStr645(integer this620) returns string { local string Test_MyInterface_getStr_result154 if (MyInterface_typeId_368[this_620] == 0) { if (this_620 == 0) { error166("Nullpointer exception when calling MyInterface.getStr"); } else { error166("Called MyInterface.getStr on invalid object."); }; } else { }; if (MyInterface_typeId_368[this_620] <= 3) { Test_MyInterface_getStr_result_154 = MyInterfaceAbstractImpl_getStr819(this_620); } else { Test_MyInterface_getStr_result_154 = MyInterfaceImpl_getStr160(this_620); }; return Test_MyInterface_getStr_result_154; } function dispatch_MyInterfaceAbstract_Test_MyInterfaceAbstract_getSome182(integer this886) returns string { local string Test_MyInterfaceAbstract_getSome_result952 if (MyInterface_typeId_368[this_886] == 0) { if (this_886 == 0) { error166("Nullpointer exception when calling MyInterfaceAbstract.getSome"); } else { error166("Called MyInterfaceAbstract.getSome on invalid object."); }; } else { }; Test_MyInterfaceAbstract_getSome_result_952 = MyInterfaceAbstract_getSome129(this_886); return Test_MyInterfaceAbstract_getSome_result_952; }