summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tqdbusmarshall.cpp7
-rw-r--r--tqdbusunixfd.cpp2
2 files changed, 6 insertions, 3 deletions
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<dbus_uint32_t>(it)));
+ case DBUS_TYPE_UNIX_FD: {
+ TQT_DBusUnixFd unixFd;
+ unixFd.giveFileDescriptor(qIterGet<dbus_uint32_t>(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);
}