Bug 1266054: GTK+: Hold references to |DBusPendingCall| in |RefPtr|, r=karlt draft
authorThomas Zimmermann <tdz@users.sourceforge.net>
Mon, 09 May 2016 11:37:55 +0200
changeset 364791 d8ad48d8c9343f366f50f9057a5767a47671c020
parent 364790 a37acd8d13717bb0c418069173cb6ed169fe2b67
child 520387 655a643c7e5c22a511a781c0c25e31cdef97b63c
push id17564
push usertdz@users.sourceforge.net
push dateMon, 09 May 2016 10:27:13 +0000
reviewerskarlt
bugs1266054
milestone49.0a1
Bug 1266054: GTK+: Hold references to |DBusPendingCall| in |RefPtr|, r=karlt MozReview-Commit-ID: F5jb9tR5FGa
widget/gtk/WakeLockListener.cpp
--- a/widget/gtk/WakeLockListener.cpp
+++ b/widget/gtk/WakeLockListener.cpp
@@ -8,16 +8,17 @@
 #ifdef MOZ_ENABLE_DBUS
 
 #include "WakeLockListener.h"
 
 #include <dbus/dbus.h>
 #include <dbus/dbus-glib-lowlevel.h>
 
 #include "mozilla/ipc/DBusMessageRefPtr.h"
+#include "mozilla/ipc/DBusPendingCallRefPtr.h"
 
 #define FREEDESKTOP_SCREENSAVER_TARGET    "org.freedesktop.ScreenSaver"
 #define FREEDESKTOP_SCREENSAVER_OBJECT    "/ScreenSaver"
 #define FREEDESKTOP_SCREENSAVER_INTERFACE "org.freedesktop.ScreenSaver"
 
 #define SESSION_MANAGER_TARGET            "org.gnome.SessionManager"
 #define SESSION_MANAGER_OBJECT            "/org/gnome/SessionManager"
 #define SESSION_MANAGER_INTERFACE         "org.gnome.SessionManager"
@@ -76,25 +77,25 @@ private:
   bool mWaitingForReply;
 };
 
 
 bool
 WakeLockTopic::SendMessage(DBusMessage* aMessage)
 {
   // send message and get a handle for a reply
-  DBusPendingCall* reply;
-  dbus_connection_send_with_reply(mConnection, aMessage, &reply,
+  RefPtr<DBusPendingCall> reply;
+  dbus_connection_send_with_reply(mConnection, aMessage,
+                                  reply.StartAssignment(),
                                   DBUS_TIMEOUT);
   if (!reply) {
     return false;
   }
 
   dbus_pending_call_set_notify(reply, &ReceiveInhibitReply, this, NULL);
-  dbus_pending_call_unref(reply);
 
   return true;
 }
 
 bool
 WakeLockTopic::SendFreeDesktopInhibitMessage()
 {
   RefPtr<DBusMessage> message = already_AddRefed<DBusMessage>(