Bug 1350794 - Avoid dereferencing aProvider when null in DataTextureSourceD3D11 constructor draft
authorKearwood Gilbert <kgilbert@mozilla.com>
Mon, 27 Mar 2017 17:28:27 -0400
changeset 552050 159d04a8ef63bc5fd8e142d57355e01be4737040
parent 502997 e03e0c60462c775c7558a1dc9d5cf2076c3cd1f9
child 621707 7dd92d9d843f2ecc742949e7f30fc365911c698d
push id51227
push userbmo:kgilbert@mozilla.com
push dateMon, 27 Mar 2017 21:28:54 +0000
bugs1350794, 1350247
milestone55.0a1
Bug 1350794 - Avoid dereferencing aProvider when null in DataTextureSourceD3D11 constructor - Require bug 1350247 patch to land first to fix WebVR crash MozReview-Commit-ID: fEsjE22mPc
gfx/layers/d3d11/TextureD3D11.cpp
--- a/gfx/layers/d3d11/TextureD3D11.cpp
+++ b/gfx/layers/d3d11/TextureD3D11.cpp
@@ -800,17 +800,21 @@ DXGITextureHostD3D11::LockInternal()
   }
 
   if (!mTextureSource) {
     if (!mTexture && !OpenSharedHandle()) {
       DeviceManagerDx::Get()->ForceDeviceReset(ForcedDeviceResetReason::OPENSHAREDHANDLE);
       return false;
     }
 
-    mTextureSource = new DataTextureSourceD3D11(mFormat, mProvider, mTexture);
+    if (mProvider) {
+      mTextureSource = new DataTextureSourceD3D11(mFormat, mProvider, mTexture);
+    } else {
+      mTextureSource = new DataTextureSourceD3D11(mDevice, mFormat, mTexture);
+    }
   }
 
   mIsLocked = LockD3DTexture(mTextureSource->GetD3D11Texture());
 
   return mIsLocked;
 }
 
 void