Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-27792

dumpcpp: The generated code can sometimes have the wrong offset for the slots and therefore fail to find one in the metaobject

XMLWordPrintable

      dumpcpp: The generated code can sometimes have the wrong offset for the slots and therefore fail to find one in the metaobject. It is not clear to me as to why this actually happens but attached is a reproducible case for this.

      The tlb attached can be used to generate the code via dumpcpp:

      dumpcpp IOM.tlb -o IMO
      

      If you look at the iom.cpp file, specifically:

      qt_meta_stringdata_IOM__IHttpServerConnectionComIncoming()
      

      then the Login() slot in particular seems to be offset in the wrong place because if you try to use this function like:

      IOM::IomFactory *factory = new IOM::IomFactory; 
      IOM::IHttpServerConnectionComIncoming *conn = factory->CreateWinAuthHttpServerConnection("url" ,"name"); 
      conn->Login()
      

      then it will fail with the following assert:

      ASSERT: "id < 0 " in file qaxbase.cpp line 3718 
      

        1. WinAuth2.zip
          224 kB
        2. IOM.tlb
          22 kB
        For Gerrit Dashboard: QTBUG-27792
        # Subject Branch Project Status CR V

            Unassigned Unassigned
            andysh Andy Shaw
            Votes:
            3 Vote for this issue
            Watchers:
            13 Start watching this issue

              Created:
              Updated:

                There are no open Gerrit changes