array MyInterface_nextFree201 integer MyInterface_firstFree141 integer MyInterface_maxIndex882 array MyInterface_typeId869 integer MyInterface_firstFree141 = 0 integer MyInterface_maxIndex882 = 0 function initGlobals626() { MyInterface_firstFree_141 = 0; MyInterface_maxIndex_882 = 0; } function main709() { initGlobals626(); init_Test154(); } function config153() { } function init_Test154() { local integer a308 local integer b637 a_308 = new_MyInterfaceImpl195(); b_637 = new_MyInterfaceAbstractImpl123(); if ((dispatch_MyInterface_Test_MyInterface_getStr120(a_308) == "MyInterfaceImpl") and (dispatch_MyInterface_Test_MyInterface_getStr120(b_637) == "AAbstract")) { testSuccess779(); } else { }; } IS_NATIVE function testSuccess779() { } function MyInterfaceAbstract_getSome173(integer this944) returns string { return "AAbstract"; } function MyInterfaceAbstract_init962(integer this121) { } function construct_MyInterfaceAbstract182(integer this193) { MyInterfaceAbstract_init962(this_193); } function MyInterfaceAbstractImpl_getStr376(integer this128) returns string { return dispatch_MyInterfaceAbstract_Test_MyInterfaceAbstract_getSome171(this_128); } function MyInterfaceAbstractImpl_init186(integer this108) { } function new_MyInterfaceAbstractImpl123() returns integer { local integer this204 this_204 = alloc_MyInterfaceAbstractImpl198(); construct_MyInterfaceAbstractImpl209(this_204); return this_204; } function construct_MyInterfaceAbstractImpl209(integer this455) { construct_MyInterfaceAbstract182(this_455); MyInterfaceAbstractImpl_init186(this_455); } function MyInterfaceImpl_getStr603(integer this419) returns string { return "MyInterfaceImpl"; } function MyInterfaceImpl_init108(integer this171) { } function new_MyInterfaceImpl195() returns integer { local integer this262 this_262 = alloc_MyInterfaceImpl866(); construct_MyInterfaceImpl866(this_262); return this_262; } function construct_MyInterfaceImpl866(integer this158) { MyInterfaceImpl_init108(this_158); } function error177(string msg158) { $debugPrint799((msg_158 + (" " + #getStackTrace()))); } function alloc_MyInterfaceAbstractImpl198() returns integer { local integer this140 if (MyInterface_firstFree_141 == 0) { if (MyInterface_maxIndex_882 < 32768) { MyInterface_maxIndex_882 = (MyInterface_maxIndex_882 + 1); this_140 = MyInterface_maxIndex_882; MyInterface_typeId_869[this_140] = 3; } else { error177("Out of memory: Could not create MyInterfaceAbstractImpl."); this_140 = 0; }; } else { MyInterface_firstFree_141 = (MyInterface_firstFree_141 - 1); this_140 = MyInterface_nextFree_201[MyInterface_firstFree_141]; MyInterface_typeId_869[this_140] = 3; }; return this_140; } function alloc_MyInterfaceImpl866() returns integer { local integer this100 if (MyInterface_firstFree_141 == 0) { if (MyInterface_maxIndex_882 < 32768) { MyInterface_maxIndex_882 = (MyInterface_maxIndex_882 + 1); this_100 = MyInterface_maxIndex_882; MyInterface_typeId_869[this_100] = 4; } else { error177("Out of memory: Could not create MyInterfaceImpl."); this_100 = 0; }; } else { MyInterface_firstFree_141 = (MyInterface_firstFree_141 - 1); this_100 = MyInterface_nextFree_201[MyInterface_firstFree_141]; MyInterface_typeId_869[this_100] = 4; }; return this_100; } function dispatch_MyInterface_Test_MyInterface_getStr120(integer this110) returns string { local string Test_MyInterface_getStr_result145 if (MyInterface_typeId_869[this_110] == 0) { if (this_110 == 0) { error177("Nullpointer exception when calling MyInterface.getStr"); } else { error177("Called MyInterface.getStr on invalid object."); }; } else { }; if (MyInterface_typeId_869[this_110] <= 3) { Test_MyInterface_getStr_result_145 = MyInterfaceAbstractImpl_getStr376(this_110); } else { Test_MyInterface_getStr_result_145 = MyInterfaceImpl_getStr603(this_110); }; return Test_MyInterface_getStr_result_145; } function dispatch_MyInterfaceAbstract_Test_MyInterfaceAbstract_getSome171(integer this520) returns string { local string Test_MyInterfaceAbstract_getSome_result462 if (MyInterface_typeId_869[this_520] == 0) { if (this_520 == 0) { error177("Nullpointer exception when calling MyInterfaceAbstract.getSome"); } else { error177("Called MyInterfaceAbstract.getSome on invalid object."); }; } else { }; Test_MyInterfaceAbstract_getSome_result_462 = MyInterfaceAbstract_getSome173(this_520); return Test_MyInterfaceAbstract_getSome_result_462; }