8215756: Memory leaks in the AWT on macOS

Reviewed-by: dmarkov
This commit is contained in:
Sergey Bylokhov 2019-01-05 10:13:58 -08:00
parent 8dd191768b
commit e391098432
3 changed files with 10 additions and 5 deletions

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2011, 2017, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -142,6 +142,11 @@ static BOOL shouldUsePressAndHold() {
fInputMethodLOCKABLE = NULL;
}
if (rolloverTrackingArea != nil) {
[self removeTrackingArea:rolloverTrackingArea];
[rolloverTrackingArea release];
rolloverTrackingArea = nil;
}
[super dealloc];
}
@ -282,7 +287,7 @@ static BOOL shouldUsePressAndHold() {
// Allow TSM to look at the event and potentially send back NSTextInputClient messages.
[self interpretKeyEvents:[NSArray arrayWithObject:event]];
if (fEnablePressAndHold && [event willBeHandledByComplexInputMethod] &&
if (fEnablePressAndHold && [event willBeHandledByComplexInputMethod] &&
fInputMethodLOCKABLE)
{
fProcessingKeystroke = NO;
@ -290,7 +295,7 @@ static BOOL shouldUsePressAndHold() {
fInPressAndHold = YES;
fPAHNeedsToSelect = YES;
} else {
// Abandon input to reset IM and unblock input after canceling
// Abandon input to reset IM and unblock input after canceling
// input accented symbols
switch([event keyCode]) {

View File

@ -471,7 +471,7 @@ AWT_ASSERT_APPKIT_THREAD;
JNIEnv *env = [ThreadUtilities getJNIEnvUncached];
[self.javaPlatformWindow setJObject:nil withEnv:env];
self.javaPlatformWindow = nil;
self.nsWindow = nil;
self.ownerWindow = nil;
[super dealloc];

View File

@ -184,7 +184,7 @@ JNF_COCOA_ENTER(env);
return;
}
[wrapper setJObject:NULL withEnv:env]; // more efficiant to pre-clear
[wrapper setJObject:NULL withEnv:env]; // more efficient to pre-clear
[wrapper release];
JNF_COCOA_EXIT(env);