array MyInterface_nextFree114 integer MyInterface_firstFree118 integer MyInterface_maxIndex212 array MyInterface_typeId434 integer MyInterface_firstFree118 = 0 integer MyInterface_maxIndex212 = 0 function initGlobals214() { } function main143() { initGlobals214(); init_Test117(); } function config167() { } function init_Test117() { local integer a972 local integer b201 a_972 = new_MyInterfaceImpl994(); b_201 = new_MyInterfaceAbstractImpl119(); if ((dispatch_MyInterface_Test_MyInterface_getStr166(a_972) == "MyInterfaceImpl") and (dispatch_MyInterface_Test_MyInterface_getStr166(b_201) == "AAbstract")) { testSuccess177(); } else { }; } IS_NATIVE function testSuccess177() { } function new_MyInterfaceAbstractImpl119() returns integer { local integer this129 if (MyInterface_firstFree_118 == 0) { if (MyInterface_maxIndex_212 < 32768) { MyInterface_maxIndex_212 = (MyInterface_maxIndex_212 + 1); this_129 = MyInterface_maxIndex_212; MyInterface_typeId_434[this_129] = 3; } else { error928("Out of memory: Could not create MyInterfaceAbstractImpl."); this_129 = 0; }; } else { MyInterface_firstFree_118 = (MyInterface_firstFree_118 - 1); this_129 = MyInterface_nextFree_114[MyInterface_firstFree_118]; MyInterface_typeId_434[this_129] = 3; }; return this_129; } function new_MyInterfaceImpl994() returns integer { local integer this188 if (MyInterface_firstFree_118 == 0) { if (MyInterface_maxIndex_212 < 32768) { MyInterface_maxIndex_212 = (MyInterface_maxIndex_212 + 1); this_188 = MyInterface_maxIndex_212; MyInterface_typeId_434[this_188] = 4; } else { error928("Out of memory: Could not create MyInterfaceImpl."); this_188 = 0; }; } else { MyInterface_firstFree_118 = (MyInterface_firstFree_118 - 1); this_188 = MyInterface_nextFree_114[MyInterface_firstFree_118]; MyInterface_typeId_434[this_188] = 4; }; return this_188; } function error928(string msg216) { $debugPrint157((msg_216 + (" " + #getStackTrace()))); } function dispatch_MyInterface_Test_MyInterface_getStr166(integer this208) returns string { local string Test_MyInterface_getStr_result722 if (MyInterface_typeId_434[this_208] == 0) { if (this_208 == 0) { error928("Nullpointer exception when calling MyInterface.getStr"); } else { error928("Called MyInterface.getStr on invalid object."); }; } else { }; if (MyInterface_typeId_434[this_208] <= 3) { if (MyInterface_typeId_434[this_208] == 0) { if (this_208 == 0) { error928("Nullpointer exception when calling MyInterfaceAbstract.getSome"); } else { error928("Called MyInterfaceAbstract.getSome on invalid object."); }; } else { }; Test_MyInterface_getStr_result_722 = "AAbstract"; } else { Test_MyInterface_getStr_result_722 = "MyInterfaceImpl"; }; return Test_MyInterface_getStr_result_722; }