From c4a0036a5d9f889482dc99716f13d6d0f871a7ab Mon Sep 17 00:00:00 2001 From: Daniel Holbert Date: Tue, 17 Mar 2015 09:29:17 -0700 Subject: [PATCH] Bug 1143823 part 1: Make MediaStream::RunAfterPendingUpdates() take already_AddRefed instead of a nsRefPtr. r=karlt --- dom/media/MediaStreamGraph.cpp | 7 ++++--- dom/media/MediaStreamGraph.h | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/dom/media/MediaStreamGraph.cpp b/dom/media/MediaStreamGraph.cpp index 680e210ade35..13f64142725a 100644 --- a/dom/media/MediaStreamGraph.cpp +++ b/dom/media/MediaStreamGraph.cpp @@ -2203,15 +2203,16 @@ MediaStream::RemoveListener(MediaStreamListener* aListener) } void -MediaStream::RunAfterPendingUpdates(nsRefPtr aRunnable) +MediaStream::RunAfterPendingUpdates(already_AddRefed aRunnable) { MOZ_ASSERT(NS_IsMainThread()); MediaStreamGraphImpl* graph = GraphImpl(); + nsCOMPtr runnable(aRunnable); // Special case when a non-realtime graph has not started, to ensure the // runnable will run in finite time. if (!(graph->mRealtime || graph->mNonRealtimeProcessing)) { - aRunnable->Run(); + runnable->Run(); } class Message : public ControlMessage { @@ -2236,7 +2237,7 @@ MediaStream::RunAfterPendingUpdates(nsRefPtr aRunnable) nsRefPtr mRunnable; }; - graph->AppendMessage(new Message(this, aRunnable.forget())); + graph->AppendMessage(new Message(this, runnable.forget())); } void diff --git a/dom/media/MediaStreamGraph.h b/dom/media/MediaStreamGraph.h index 881a21e4563d..204d3b6e1ccb 100644 --- a/dom/media/MediaStreamGraph.h +++ b/dom/media/MediaStreamGraph.h @@ -397,7 +397,7 @@ public: * * Main thread only. */ - void RunAfterPendingUpdates(nsRefPtr aRunnable); + void RunAfterPendingUpdates(already_AddRefed aRunnable); // Signal that the client is done with this MediaStream. It will be deleted later. virtual void Destroy();