Uploaded image for project: 'Qt Mobility'
  1. Qt Mobility
  2. QTMOBILITY-1785

When using QtDbus as Out-of-Process IPC mechanism, arguments are not handled correctly in all cases

    XMLWordPrintable

Details

    • Bug
    • Resolution: Unresolved
    • P2: Important
    • None
    • 1.2.x
    • Service Framework
    • None
    • This has been verified on the a recent master branch (pulled today) of (commit d8b39d905bb5f604e5bbc6b39fdee9d6b917f696) on KUbuntu and Harmattan.

    Description

      When using QtDbus as an IPC mechanism some methods types can not be called. For example the method:

      ContextInfo ContextClient::contextTypeInfo(const QString& contextId) const

      will not work, leading to a "can not be called" warning on the server side. It appears that only user-type arguments are considered during argument processing in the "int QServiceMetaObjectDBus::qt_metacall(QMetaObject::Call c, int id, void **a)" method. The first part of the attached patch is a hack that works around that issue.

      Furthermore, in some cases (standard) return types appear to be ignored. For instance the following method:

      RecordingInfoId ContextClient::addScheduledRecording(RecordingInfo recordinginfo);

      leads to an "Internal error: Failed to deliver message" on the server side. Note that RecordingInfoId and QueryId are typedefs of QString so they are handled as standard return types. It seems that that QMetamethod::invoke(...) is called without the QGenericReturnArgument argument and hence the return value is not considered. The second and third part of the patch illustrate this. Obviously this is just a workaround for QString based return values and not suggested as a generic solution for this problem.

      Attachments

        Activity

          People

            stanleyj Andrew Stanley-Jones (closed Nokia identity) (Inactive)
            vangasse Joep van Gassel
            Votes:
            1 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated: