mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 906445. Some speculative fixes to guard against dereferencing nullptrs. r=Bas
This commit is contained in:
parent
cca4ba2d92
commit
b6a0233b1c
@ -120,6 +120,7 @@ DeprecatedTextureClientD3D11::EnsureAllocated(gfx::IntSize aSize,
|
||||
|
||||
if (FAILED(hr)) {
|
||||
LOGD3D11("Error getting shared handle for texture.");
|
||||
return false;
|
||||
}
|
||||
|
||||
mDescriptor = SurfaceDescriptorD3D10((WindowsHandle)sharedHandle,
|
||||
@ -174,9 +175,10 @@ DeprecatedTextureClientD3D11::SetDescriptor(const SurfaceDescriptor& aDescriptor
|
||||
MOZ_ASSERT(aDescriptor.type() == SurfaceDescriptor::TSurfaceDescriptorD3D10);
|
||||
ID3D10Device* device = gfxWindowsPlatform::GetPlatform()->GetD3D10Device();
|
||||
|
||||
device->OpenSharedResource((HANDLE)aDescriptor.get_SurfaceDescriptorD3D10().handle(),
|
||||
__uuidof(ID3D10Texture2D),
|
||||
(void**)(ID3D10Texture2D**)byRef(mTexture));
|
||||
HRESULT hr = device->OpenSharedResource((HANDLE)aDescriptor.get_SurfaceDescriptorD3D10().handle(),
|
||||
__uuidof(ID3D10Texture2D),
|
||||
(void**)(ID3D10Texture2D**)byRef(mTexture));
|
||||
NS_WARN_IF_FALSE(mTexture && SUCCEEDED(hr), "Could not open shared resource");
|
||||
}
|
||||
|
||||
void
|
||||
@ -421,9 +423,15 @@ DeprecatedTextureHostDXGID3D11::UpdateImpl(const SurfaceDescriptor& aImage,
|
||||
{
|
||||
MOZ_ASSERT(aImage.type() == SurfaceDescriptor::TSurfaceDescriptorD3D10);
|
||||
|
||||
mDevice->OpenSharedResource((HANDLE)aImage.get_SurfaceDescriptorD3D10().handle(),
|
||||
__uuidof(ID3D11Texture2D),
|
||||
(void**)(ID3D11Texture2D**)byRef(mTextures[0]));
|
||||
HRESULT hr =mDevice->OpenSharedResource((HANDLE)aImage.get_SurfaceDescriptorD3D10().handle(),
|
||||
__uuidof(ID3D11Texture2D),
|
||||
(void**)(ID3D11Texture2D**)byRef(mTextures[0]));
|
||||
if (!mTextures[0] || FAILED(hr)) {
|
||||
NS_WARNING("Could not open shared resource");
|
||||
mSize = IntSize(0, 0);
|
||||
return;
|
||||
}
|
||||
|
||||
mFormat = aImage.get_SurfaceDescriptorD3D10().hasAlpha() ? FORMAT_B8G8R8A8 : FORMAT_B8G8R8X8;
|
||||
|
||||
D3D11_TEXTURE2D_DESC desc;
|
||||
@ -435,6 +443,9 @@ DeprecatedTextureHostDXGID3D11::UpdateImpl(const SurfaceDescriptor& aImage,
|
||||
void
|
||||
DeprecatedTextureHostDXGID3D11::LockTexture()
|
||||
{
|
||||
if (!mTextures[0]) {
|
||||
return;
|
||||
}
|
||||
RefPtr<IDXGIKeyedMutex> mutex;
|
||||
mTextures[0]->QueryInterface((IDXGIKeyedMutex**)byRef(mutex));
|
||||
|
||||
@ -444,6 +455,9 @@ DeprecatedTextureHostDXGID3D11::LockTexture()
|
||||
void
|
||||
DeprecatedTextureHostDXGID3D11::ReleaseTexture()
|
||||
{
|
||||
if (!mTextures[0]) {
|
||||
return;
|
||||
}
|
||||
RefPtr<IDXGIKeyedMutex> mutex;
|
||||
mTextures[0]->QueryInterface((IDXGIKeyedMutex**)byRef(mutex));
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user