From ebd695713705048788226088eee1760d2052fa2a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Emilio=20Cobos=20=C3=81lvarez?= Date: Fri, 8 Jul 2022 15:47:20 +0000 Subject: [PATCH] Bug 1777553 - Use a weak pres context reference in nsMenuItemIconX. r=mac-reviewers,spohl This is the only thing from the regressing patch that could potentially cause this macOS leak, realistically. I don't think the leak is super-worrisome, likely we just shut down the browser before the image load finishes. Differential Revision: https://phabricator.services.mozilla.com/D151368 --- widget/cocoa/nsMenuItemIconX.h | 3 ++- widget/cocoa/nsMenuItemIconX.mm | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/widget/cocoa/nsMenuItemIconX.h b/widget/cocoa/nsMenuItemIconX.h index c9d908063f6d0..c2d3442cbb5d6 100644 --- a/widget/cocoa/nsMenuItemIconX.h +++ b/widget/cocoa/nsMenuItemIconX.h @@ -13,6 +13,7 @@ #import #include "mozilla/widget/IconLoader.h" +#include "mozilla/WeakPtr.h" class nsIconLoaderService; class nsIURI; @@ -62,7 +63,7 @@ class nsMenuItemIconX final : public mozilla::widget::IconLoader::Listener { Listener* mListener; // [weak] nsIntRect mImageRegionRect; RefPtr mComputedStyle; - RefPtr mPresContext; + mozilla::WeakPtr mPresContext; NSImage* mIconImage = nil; // [strong] RefPtr mIconLoader; }; diff --git a/widget/cocoa/nsMenuItemIconX.mm b/widget/cocoa/nsMenuItemIconX.mm index 5954d4573625f..4beb04aef16af 100644 --- a/widget/cocoa/nsMenuItemIconX.mm +++ b/widget/cocoa/nsMenuItemIconX.mm @@ -167,10 +167,10 @@ [mIconImage release]; mIconImage = nil; } - + RefPtr pc = mPresContext.get(); mIconImage = [[MOZIconHelper iconImageFromImageContainer:aImage withSize:NSMakeSize(kIconSize, kIconSize) - presContext:mPresContext + presContext:pc computedStyle:mComputedStyle subrect:mImageRegionRect scaleFactor:0.0f] retain];