Bug 1266054: GTK+: Hold references to |DBusPendingCall| in |RefPtr|, r=karlt
MozReview-Commit-ID: F5jb9tR5FGa
--- 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>(