array MyInterface_nextFree200 integer MyInterface_firstFree149 integer MyInterface_maxIndex143 array MyInterface_typeId132 integer MyInterface_firstFree149 = 0 integer MyInterface_maxIndex143 = 0 function initGlobals479() { } function main645() { initGlobals479(); init_Test132(); } function config205() { } function init_Test132() { local integer a464 local integer b628 a_464 = new_MyInterfaceImpl352(); b_628 = new_MyInterfaceAbstractImpl178(); if ((dispatch_MyInterface_Test_MyInterface_getStr842(a_464) == "MyInterfaceImpl") and (dispatch_MyInterface_Test_MyInterface_getStr842(b_628) == "AAbstract")) { testSuccess193(); } else { }; } IS_NATIVE function testSuccess193() { } function new_MyInterfaceAbstractImpl178() returns integer { local integer this479 local integer this100 if (MyInterface_firstFree_149 == 0) { if (MyInterface_maxIndex_143 < 32768) { MyInterface_maxIndex_143 = (MyInterface_maxIndex_143 + 1); this_100 = MyInterface_maxIndex_143; MyInterface_typeId_132[this_100] = 3; } else { error189("Out of memory: Could not create MyInterfaceAbstractImpl."); this_100 = 0; }; } else { MyInterface_firstFree_149 = (MyInterface_firstFree_149 - 1); this_100 = MyInterface_nextFree_200[MyInterface_firstFree_149]; MyInterface_typeId_132[this_100] = 3; }; this_479 = this_100; return this_479; } function new_MyInterfaceImpl352() returns integer { local integer this777 local integer this207 if (MyInterface_firstFree_149 == 0) { if (MyInterface_maxIndex_143 < 32768) { MyInterface_maxIndex_143 = (MyInterface_maxIndex_143 + 1); this_207 = MyInterface_maxIndex_143; MyInterface_typeId_132[this_207] = 4; } else { error189("Out of memory: Could not create MyInterfaceImpl."); this_207 = 0; }; } else { MyInterface_firstFree_149 = (MyInterface_firstFree_149 - 1); this_207 = MyInterface_nextFree_200[MyInterface_firstFree_149]; MyInterface_typeId_132[this_207] = 4; }; this_777 = this_207; return this_777; } function error189(string msg122) { $debugPrint660((msg_122 + (" " + #getStackTrace()))); } function dispatch_MyInterface_Test_MyInterface_getStr842(integer this120) returns string { local string Test_MyInterface_getStr_result217 local integer this844 local integer this370 local string Test_MyInterfaceAbstract_getSome_result475 if (MyInterface_typeId_132[this_120] == 0) { if (this_120 == 0) { error189("Nullpointer exception when calling MyInterface.getStr"); } else { error189("Called MyInterface.getStr on invalid object."); }; } else { }; if (MyInterface_typeId_132[this_120] <= 3) { this_844 = this_120; this_370 = this_844; if (MyInterface_typeId_132[this_370] == 0) { if (this_370 == 0) { error189("Nullpointer exception when calling MyInterfaceAbstract.getSome"); } else { error189("Called MyInterfaceAbstract.getSome on invalid object."); }; } else { }; Test_MyInterfaceAbstract_getSome_result_475 = "AAbstract"; Test_MyInterface_getStr_result_217 = Test_MyInterfaceAbstract_getSome_result_475; } else { Test_MyInterface_getStr_result_217 = "MyInterfaceImpl"; }; return Test_MyInterface_getStr_result_217; }