Bug 1243627 - FFVPXRuntimeLinker::Init() should set sLinkStatus to LinkStatus_FAILED before returning false. r=jya. draft
authorJW Wang <jwwang@mozilla.com>
Thu, 28 Jan 2016 11:50:29 +0800
changeset 326535 e7c5d05f605dd84c1f9b1f9ad8079116c8f7d8ac
parent 326533 5de2460236d9baf2c157c5394d2e2bc6565f0e19
child 513619 2f635615d5a961b981b0724b87608ccf4a16f92a
push id10159
push userjwwang@mozilla.com
push dateThu, 28 Jan 2016 03:51:18 +0000
reviewersjya
bugs1243627
milestone47.0a1
Bug 1243627 - FFVPXRuntimeLinker::Init() should set sLinkStatus to LinkStatus_FAILED before returning false. r=jya.
dom/media/platforms/ffmpeg/ffvpx/FFVPXRuntimeLinker.cpp
--- a/dom/media/platforms/ffmpeg/ffvpx/FFVPXRuntimeLinker.cpp
+++ b/dom/media/platforms/ffmpeg/ffvpx/FFVPXRuntimeLinker.cpp
@@ -38,16 +38,17 @@ MozAVLink(const char* aName)
 /* static */ bool
 FFVPXRuntimeLinker::Init()
 {
   if (sLinkStatus) {
     return sLinkStatus == LinkStatus_SUCCEEDED;
   }
 
   MOZ_ASSERT(NS_IsMainThread());
+  sLinkStatus = LinkStatus_FAILED;
 
   // We retrieve the path of the XUL library as this is where mozavcodec and
   // mozavutil libs are located.
   char* path =
     PR_GetLibraryFilePathname(XUL_DLL, (PRFuncPtr)&FFVPXRuntimeLinker::Init);
   if (!path) {
     return false;
   }
@@ -80,18 +81,16 @@ FFVPXRuntimeLinker::Init()
   if (libname) {
     sFFVPXLib.mAVCodecLib = MozAVLink(libname);
     PR_FreeLibraryName(libname);
   }
   if (sFFVPXLib.Link()) {
     sLinkStatus = LinkStatus_SUCCEEDED;
     return true;
   }
-  sLinkStatus = LinkStatus_FAILED;
-
   return false;
 }
 
 /* static */ already_AddRefed<PlatformDecoderModule>
 FFVPXRuntimeLinker::CreateDecoderModule()
 {
   if (!Init()) {
     return nullptr;