Bug 1284051 - Handle ShadowLayers::GetCompositorBridgeChild returning null. r=sotaro

This commit is contained in:
Nicolas Silva 2016-07-04 15:10:22 +02:00
parent a7a3dcf9d4
commit 867e2c403e

View File

@ -1096,19 +1096,27 @@ ShadowLayerForwarder::DestroySurfaceDescriptor(SurfaceDescriptor* aSurface)
void
ShadowLayerForwarder::UpdateFwdTransactionId()
{
GetCompositorBridgeChild()->UpdateFwdTransactionId();
auto compositorBridge = GetCompositorBridgeChild();
if (compositorBridge) {
compositorBridge->UpdateFwdTransactionId();
}
}
uint64_t
ShadowLayerForwarder::GetFwdTransactionId()
{
return GetCompositorBridgeChild()->GetFwdTransactionId();
auto compositorBridge = GetCompositorBridgeChild();
MOZ_DIAGNOSTIC_ASSERT(compositorBridge);
return compositorBridge ? compositorBridge->GetFwdTransactionId() : 0;
}
void
ShadowLayerForwarder::CancelWaitForRecycle(uint64_t aTextureId)
{
GetCompositorBridgeChild()->CancelWaitForRecycle(aTextureId);
auto compositorBridge = GetCompositorBridgeChild();
if (compositorBridge) {
compositorBridge->CancelWaitForRecycle(aTextureId);
}
}
CompositorBridgeChild*
@ -1117,6 +1125,9 @@ ShadowLayerForwarder::GetCompositorBridgeChild()
if (mCompositorBridgeChild) {
return mCompositorBridgeChild;
}
if (!mShadowManager) {
return nullptr;
}
mCompositorBridgeChild = static_cast<CompositorBridgeChild*>(mShadowManager->Manager());
return mCompositorBridgeChild;
}