Browse Source

* experimental ie fix for dispinterfaces with rtti

git-svn-id: trunk@6770 -
florian 18 years ago
parent
commit
60c5179366
1 changed files with 3 additions and 2 deletions
  1. 3 2
      compiler/ncgrtti.pas

+ 3 - 2
compiler/ncgrtti.pas

@@ -692,10 +692,10 @@ implementation
               longint([
               longint([
 {$endif USE_PACKSET1}
 {$endif USE_PACKSET1}
                 TCompilerIntfFlag(ord(ifHasGuid)*ord(assigned(def.iidguid))),
                 TCompilerIntfFlag(ord(ifHasGuid)*ord(assigned(def.iidguid))),
-                TCompilerIntfFlag(ord(ifHasStrGUID)*ord(assigned(def.iidstr)))
+                TCompilerIntfFlag(ord(ifHasStrGUID)*ord(assigned(def.iidstr))),
+                TCompilerIntfFlag(ord(ifDispInterface)*ord(def.objecttype=odt_dispinterface))
               ])
               ])
               {
               {
-              ifDispInterface,
               ifDispatch, }
               ifDispatch, }
               ));
               ));
             if (tf_requires_proper_alignment in target_info.flags) then
             if (tf_requires_proper_alignment in target_info.flags) then
@@ -735,6 +735,7 @@ implementation
                current_asmdata.asmlists[al_rtti].concat(Tai_const.Create_8bit(tkclass));
                current_asmdata.asmlists[al_rtti].concat(Tai_const.Create_8bit(tkclass));
              odt_object:
              odt_object:
                current_asmdata.asmlists[al_rtti].concat(Tai_const.Create_8bit(tkobject));
                current_asmdata.asmlists[al_rtti].concat(Tai_const.Create_8bit(tkobject));
+             odt_dispinterface,
              odt_interfacecom:
              odt_interfacecom:
                current_asmdata.asmlists[al_rtti].concat(Tai_const.Create_8bit(tkinterface));
                current_asmdata.asmlists[al_rtti].concat(Tai_const.Create_8bit(tkinterface));
              odt_interfacecorba:
              odt_interfacecorba: