Skip to content
This repository was archived by the owner on Aug 27, 2022. It is now read-only.
/ lanai Public archive

Commit 7bf226f

Browse files
committedFeb 1, 2021
8260857: Remove JNFWeakJObjectWrapper from Lanai Project
1 parent 5aca2ac commit 7bf226f

File tree

2 files changed

+8
-6
lines changed

2 files changed

+8
-6
lines changed
 

‎src/java.desktop/macosx/native/libawt_lwawt/java2d/metal/MTLLayer.h

+3-3
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@
3535
@interface MTLLayer : CAMetalLayer
3636
{
3737
@private
38-
JNFWeakJObjectWrapper *javaLayer;
38+
jobject javaLayer;
3939

4040
// intermediate buffer, used the RQ lock to synchronize
4141
MTLContext* ctx;
@@ -48,7 +48,7 @@
4848
CVDisplayLinkRef displayLink;
4949
}
5050

51-
@property (nonatomic, retain) JNFWeakJObjectWrapper *javaLayer;
51+
@property (nonatomic) jobject javaLayer;
5252
@property (readwrite, assign) MTLContext* ctx;
5353
@property (readwrite, assign) float bufferWidth;
5454
@property (readwrite, assign) float bufferHeight;
@@ -58,7 +58,7 @@
5858
@property (readwrite, assign) int leftInset;
5959
@property (readwrite, assign) CVDisplayLinkRef displayLink;
6060

61-
- (id) initWithJavaLayer:(JNFWeakJObjectWrapper *)layer;
61+
- (id) initWithJavaLayer:(jobject)layer;
6262

6363
- (void) blitTexture;
6464
- (void) fillParallelogramCtxX:(jfloat)x

‎src/java.desktop/macosx/native/libawt_lwawt/java2d/metal/MTLLayer.m

+5-3
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ @implementation MTLLayer
4343
@synthesize nextDrawableCount;
4444
@synthesize displayLink;
4545

46-
- (id) initWithJavaLayer:(JNFWeakJObjectWrapper *)layer
46+
- (id) initWithJavaLayer:(jobject)layer
4747
{
4848
AWT_ASSERT_APPKIT_THREAD;
4949
// Initialize ourselves
@@ -122,6 +122,8 @@ - (void) blitTexture {
122122
}
123123

124124
- (void) dealloc {
125+
JNIEnv *env = [ThreadUtilities getJNIEnvUncached];
126+
(*env)->DeleteWeakGlobalRef(env, self.javaLayer);
125127
self.javaLayer = nil;
126128
[self stopDisplayLink];
127129
CVDisplayLinkRelease(self.displayLink);
@@ -135,7 +137,7 @@ - (void) blitCallback {
135137
DECLARE_CLASS(jc_JavaLayer, "sun/java2d/metal/MTLLayer");
136138
DECLARE_METHOD(jm_drawInMTLContext, jc_JavaLayer, "drawInMTLContext", "()V");
137139

138-
jobject javaLayerLocalRef = [self.javaLayer jObjectWithEnv:env];
140+
jobject javaLayerLocalRef = (*env)->NewLocalRef(env, self.javaLayer);
139141
if ((*env)->IsSameObject(env, javaLayerLocalRef, NULL)) {
140142
return;
141143
}
@@ -191,7 +193,7 @@ CVReturn displayLinkCallback(CVDisplayLinkRef displayLink, const CVTimeStamp* no
191193

192194
JNI_COCOA_ENTER(env);
193195

194-
JNFWeakJObjectWrapper *javaLayer = [JNFWeakJObjectWrapper wrapperWithJObject:obj withEnv:env];
196+
jobject javaLayer = (*env)->NewWeakGlobalRef(env, obj);
195197

196198
[ThreadUtilities performOnMainThreadWaiting:YES block:^(){
197199
AWT_ASSERT_APPKIT_THREAD;

0 commit comments

Comments
 (0)
This repository has been archived.