Skip to content

Commit 4d8e12d

Browse files
Andrew BryginJohan Vos
authored andcommitted
8275723: Crash on macOS 12 in GlassRunnable::dealloc
Reviewed-by: kcr, jvos
1 parent 5fc047b commit 4d8e12d

File tree

1 file changed

+5
-14
lines changed

1 file changed

+5
-14
lines changed

modules/javafx.graphics/src/main/native-glass/mac/GlassApplication.m

Lines changed: 5 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -98,30 +98,21 @@ - (void)run
9898
{
9999
assert(pthread_main_np() == 1);
100100
JNIEnv *env = jEnv;
101-
if (env != NULL)
101+
if (env != NULL && self->jRunnable != NULL)
102102
{
103103
(*env)->CallVoidMethod(env, self->jRunnable, jRunnableRun);
104104
GLASS_CHECK_EXCEPTION(env);
105+
106+
(*env)->DeleteGlobalRef(env, self->jRunnable);
105107
}
106108

109+
self->jRunnable = NULL;
110+
107111
[self release];
108112
}
109113
[pool drain];
110114
}
111115

112-
- (void)dealloc
113-
{
114-
assert(pthread_main_np() == 1);
115-
JNIEnv *env = jEnv;
116-
if (env != NULL)
117-
{
118-
(*env)->DeleteGlobalRef(env, self->jRunnable);
119-
}
120-
self->jRunnable = NULL;
121-
122-
[super dealloc];
123-
}
124-
125116
@end
126117

127118
#pragma mark --- GlassApplication

0 commit comments

Comments
 (0)