diff --git a/tqdbusmarshall.cpp b/tqdbusmarshall.cpp index f4aa5f7..7c21619 100644 --- a/tqdbusmarshall.cpp +++ b/tqdbusmarshall.cpp @@ -599,8 +599,11 @@ static TQT_DBusData qFetchParameter(DBusMessageIter *it) return TQT_DBusData::fromStruct(memberList); } - case DBUS_TYPE_UNIX_FD: - return TQT_DBusData::fromUnixFd(TQT_DBusUnixFd(qIterGet(it))); + case DBUS_TYPE_UNIX_FD: { + TQT_DBusUnixFd unixFd; + unixFd.giveFileDescriptor(qIterGet(it)); + return TQT_DBusData::fromUnixFd(unixFd); + } #if 0 case DBUS_TYPE_INVALID: // TODO: check if there is better way to detect empty arrays diff --git a/tqdbusunixfd.cpp b/tqdbusunixfd.cpp index ba7a06c..3aa4ba2 100644 --- a/tqdbusunixfd.cpp +++ b/tqdbusunixfd.cpp @@ -35,7 +35,7 @@ TQT_DBusUnixFd::TQT_DBusUnixFd(const TQT_DBusUnixFd& other) : d(other.d) d->ref(); } -TQT_DBusUnixFd::TQT_DBusUnixFd(int other) +TQT_DBusUnixFd::TQT_DBusUnixFd(int other) : d(0) { setFileDescriptor(other); }