fix: double-autorelease of NSImage (#21757)

This commit is contained in:
Cheng Zhao 2020-01-14 04:37:11 +09:00 committed by Jeremy Apthorp
parent d68f17b32c
commit 32af863e34

View file

@ -1373,11 +1373,11 @@ void NativeWindowMac::SetVibrancy(const std::string& type) {
[effect_view setBlendingMode:NSVisualEffectBlendingModeBehindWindow]; [effect_view setBlendingMode:NSVisualEffectBlendingModeBehindWindow];
[effect_view setState:NSVisualEffectStateActive]; [effect_view setState:NSVisualEffectStateActive];
// The default corner radius of a macOS window. // Make frameless Vibrant windows have rounded corners.
CGFloat radius = 5.0f; CGFloat radius = 5.0f; // default corner radius
CGFloat dimension = 2 * radius + 1; CGFloat dimension = 2 * radius + 1;
NSSize size = NSMakeSize(dimension, dimension); NSSize size = NSMakeSize(dimension, dimension);
NSImage* maskImage = [[NSImage imageWithSize:size NSImage* maskImage = [NSImage imageWithSize:size
flipped:NO flipped:NO
drawingHandler:^BOOL(NSRect rect) { drawingHandler:^BOOL(NSRect rect) {
NSBezierPath* bezierPath = [NSBezierPath NSBezierPath* bezierPath = [NSBezierPath
@ -1387,7 +1387,7 @@ void NativeWindowMac::SetVibrancy(const std::string& type) {
[[NSColor blackColor] set]; [[NSColor blackColor] set];
[bezierPath fill]; [bezierPath fill];
return YES; return YES;
}] autorelease]; }];
[maskImage setCapInsets:NSEdgeInsetsMake(radius, radius, radius, radius)]; [maskImage setCapInsets:NSEdgeInsetsMake(radius, radius, radius, radius)];
[maskImage setResizingMode:NSImageResizingModeStretch]; [maskImage setResizingMode:NSImageResizingModeStretch];