From 9a2c51887bff5742c072bf4f3c3794b349f51545 Mon Sep 17 00:00:00 2001 From: Jeff Gilbert Date: Fri, 12 Jul 2024 10:27:35 +0800 Subject: [PATCH] Bug 1654211 - Hold WeakPtr to PresistentBufferProvider in BorrowedSourceSurface. r=gfx-reviewers,nical Reference:https://hg.mozilla.org/mozilla-central/rev/0ec8df5bd92b --- gfx/layers/CanvasRenderer.h | 2 +- gfx/layers/PersistentBufferProvider.h | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/gfx/layers/CanvasRenderer.h b/gfx/layers/CanvasRenderer.h index 7e03e295b0..ca3ae088cc 100644 --- a/gfx/layers/CanvasRenderer.h +++ b/gfx/layers/CanvasRenderer.h @@ -95,7 +95,7 @@ struct CanvasRendererData final { class BorrowedSourceSurface final { public: - PersistentBufferProvider* const mReturnTo; + const WeakPtr mReturnTo; const RefPtr mSurf; /// non-null BorrowedSourceSurface(PersistentBufferProvider*, RefPtr); diff --git a/gfx/layers/PersistentBufferProvider.h b/gfx/layers/PersistentBufferProvider.h index f0d8aeccb9..85cfee8805 100644 --- a/gfx/layers/PersistentBufferProvider.h +++ b/gfx/layers/PersistentBufferProvider.h @@ -14,6 +14,8 @@ #include "mozilla/RefCounted.h" #include "mozilla/gfx/Types.h" #include "mozilla/Vector.h" +#include "mozilla/WeakPtr.h" + namespace mozilla { @@ -34,7 +36,9 @@ class TextureClient; * from the provider again, the provider will guarantee the contents of the * previously returned DrawTarget is persisted into the one newly returned. */ -class PersistentBufferProvider : public RefCounted { +class PersistentBufferProvider : public RefCounted, + public SupportsWeakPtr { + public: MOZ_DECLARE_REFCOUNTED_VIRTUAL_TYPENAME(PersistentBufferProvider) -- 2.27.0