Bug 1398659. P5 - let ChannelMediaResource::Open() set mListener without calling OpenChannel(). draft
authorJW Wang <jwwang@mozilla.com>
Tue, 05 Sep 2017 17:51:22 +0800
changeset 662142 dada91b690aa548a04f17acf8010c93360215c7e
parent 662141 b8ac49a5d0820ae460cd5cbbab9fe30c32c1fddf
child 662143 7d7a83ddf5d6628437c3448cc97964ddf3404f7e
child 662182 7ad30f60a780df980d105602fcc94389a57f5a54
push id78964
push userjwwang@mozilla.com
push dateMon, 11 Sep 2017 04:05:04 +0000
bugs1398659
milestone57.0a1
Bug 1398659. P5 - let ChannelMediaResource::Open() set mListener without calling OpenChannel(). This is more efficient because aStreamListener won't be null. MozReview-Commit-ID: 4b22l7cTK6y
dom/media/MediaResource.cpp
--- a/dom/media/MediaResource.cpp
+++ b/dom/media/MediaResource.cpp
@@ -531,17 +531,20 @@ ChannelMediaResource::Open(nsIStreamList
   }
 
   nsresult rv = mCacheStream.Init(cl);
   if (NS_FAILED(rv)) {
     return rv;
   }
 
   MOZ_ASSERT(mOffset == 0, "Who set mOffset already?");
-  return OpenChannel(aStreamListener);
+  mListener = new Listener(this);
+  *aStreamListener = mListener;
+  NS_ADDREF(*aStreamListener);
+  return NS_OK;
 }
 
 nsresult ChannelMediaResource::OpenChannel(nsIStreamListener** aStreamListener)
 {
   NS_ASSERTION(NS_IsMainThread(), "Only call on main thread");
   NS_ENSURE_TRUE(mChannel, NS_ERROR_NULL_POINTER);
   NS_ASSERTION(!mListener, "Listener should have been removed by now");