Bug 1164513 - Add nullptr check. r=milan, a=jocheng
--- a/gfx/layers/ipc/SharedBufferManagerParent.cpp
+++ b/gfx/layers/ipc/SharedBufferManagerParent.cpp
@@ -361,17 +361,21 @@ SharedBufferManagerParent::GetGraphicBuf
return nullptr;
}
}
android::sp<android::GraphicBuffer>
SharedBufferManagerParent::GetGraphicBuffer(GrallocBufferRef aRef)
{
MonitorAutoLock lock(*sManagerMonitor.get());
- return GetInstance(aRef.mOwner)->GetGraphicBuffer(aRef.mKey);
+ SharedBufferManagerParent* parent = GetInstance(aRef.mOwner);
+ if (!parent) {
+ return nullptr;
+ }
+ return parent->GetGraphicBuffer(aRef.mKey);
}
#endif
IToplevelProtocol*
SharedBufferManagerParent::CloneToplevel(const InfallibleTArray<ProtocolFdMapping>& aFds,
base::ProcessHandle aPeerProcess,
mozilla::ipc::ProtocolCloneContext* aCtx)
{
--- a/gfx/layers/opengl/GrallocTextureHost.cpp
+++ b/gfx/layers/opengl/GrallocTextureHost.cpp
@@ -225,16 +225,19 @@ GrallocTextureHostOGL::GetRenderState()
}
return LayerRenderState();
}
TemporaryRef<gfx::DataSourceSurface>
GrallocTextureHostOGL::GetAsSurface() {
android::GraphicBuffer* graphicBuffer = GetGraphicBufferFromDesc(mGrallocHandle).get();
+ if (!graphicBuffer) {
+ return nullptr;
+ }
uint8_t* grallocData;
graphicBuffer->lock(GRALLOC_USAGE_SW_READ_OFTEN, reinterpret_cast<void**>(&grallocData));
RefPtr<gfx::DataSourceSurface> grallocTempSurf =
gfx::Factory::CreateWrappingDataSourceSurface(grallocData,
graphicBuffer->getStride() * android::bytesPerPixel(graphicBuffer->getPixelFormat()),
GetSize(), GetFormat());
RefPtr<gfx::DataSourceSurface> surf = CreateDataSourceSurfaceByCloning(grallocTempSurf);