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

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: P2: Important 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.

      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.

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

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

              Created:
              Updated:

                There are no open Gerrit changes