< prev index next >
src/java.desktop/macosx/native/libawt_lwawt/awt/CClipboard.m
Print this page
rev 54094 : 8257853: Remove dependencies on JNF's JNI utility functions in AWT and 2D code
rev 54096 : 8259651: [macOS] Replace JNF_COCOA_ENTER/EXIT macros
rev 54097 : 8259869: [macOS] Remove desktop module dependencies on JNF Reference APIs
rev 54098 : 8260616: Removing remaining JNF dependencies in the java.desktop module
8259729: Missed JNFInstanceOf -> IsInstanceOf conversion
@@ -23,13 +23,12 @@
* questions.
*/
#import "CDataTransferer.h"
#import "ThreadUtilities.h"
-#import "jni_util.h"
+#import "JNIUtilities.h"
#import <Cocoa/Cocoa.h>
-#import <JavaNativeFoundation/JavaNativeFoundation.h>
@interface CClipboard : NSObject { }
@property NSInteger changeCount;
@property jobject clipboardOwner;
@@ -64,13 +63,13 @@
- (void)declareTypes:(NSArray*)types withOwner:(jobject)owner jniEnv:(JNIEnv*)env {
@synchronized(self) {
if (owner != NULL) {
if (self.clipboardOwner != NULL) {
- JNFDeleteGlobalRef(env, self.clipboardOwner);
+ (*env)->DeleteGlobalRef(env, self.clipboardOwner);
}
- self.clipboardOwner = JNFNewGlobalRef(env, owner);
+ self.clipboardOwner = (*env)->NewGlobalRef(env, owner);
}
}
[ThreadUtilities performOnMainThreadWaiting:YES block:^() {
self.changeCount = [[NSPasteboard generalPasteboard] declareTypes:types owner:self];
}];
@@ -86,23 +85,24 @@
NSInteger newChangeCount = [[NSPasteboard generalPasteboard] changeCount];
if (self.changeCount != newChangeCount) {
self.changeCount = newChangeCount;
- // Notify that the content might be changed
- static JNF_CLASS_CACHE(jc_CClipboard, "sun/lwawt/macosx/CClipboard");
- static JNF_STATIC_MEMBER_CACHE(jm_contentChanged, jc_CClipboard, "notifyChanged", "()V");
JNIEnv *env = [ThreadUtilities getJNIEnv];
- JNFCallStaticVoidMethod(env, jm_contentChanged);
+ // Notify that the content might be changed
+ DECLARE_CLASS(jc_CClipboard, "sun/lwawt/macosx/CClipboard");
+ DECLARE_STATIC_METHOD(jm_contentChanged, jc_CClipboard, "notifyChanged", "()V");
+ (*env)->CallStaticVoidMethod(env, jc_CClipboard, jm_contentChanged);
+ CHECK_EXCEPTION();
// If we have a Java pasteboard owner, tell it that it doesn't own the pasteboard anymore.
- static JNF_MEMBER_CACHE(jm_lostOwnership, jc_CClipboard, "notifyLostOwnership", "()V");
+ DECLARE_METHOD(jm_lostOwnership, jc_CClipboard, "notifyLostOwnership", "()V");
@synchronized(self) {
if (self.clipboardOwner) {
- JNIEnv *env = [ThreadUtilities getJNIEnv];
- JNFCallVoidMethod(env, self.clipboardOwner, jm_lostOwnership); // AWT_THREADING Safe (event)
- JNFDeleteGlobalRef(env, self.clipboardOwner);
+ (*env)->CallVoidMethod(env, self.clipboardOwner, jm_lostOwnership);
+ CHECK_EXCEPTION();
+ (*env)->DeleteGlobalRef(env, self.clipboardOwner);
self.clipboardOwner = NULL;
}
}
}
}
@@ -128,11 +128,11 @@
* Signature: ([JLsun/awt/datatransfer/SunClipboard;)V
*/
JNIEXPORT void JNICALL Java_sun_lwawt_macosx_CClipboard_declareTypes
(JNIEnv *env, jobject inObject, jlongArray inTypes, jobject inJavaClip)
{
-JNF_COCOA_ENTER(env);
+JNI_COCOA_ENTER(env);
jint i;
jint nElements = (*env)->GetArrayLength(env, inTypes);
NSMutableArray *formatArray = [NSMutableArray arrayWithCapacity:nElements];
jlong *elements = (*env)->GetPrimitiveArrayCritical(env, inTypes, NULL);
@@ -143,11 +143,11 @@
[formatArray addObject:pbFormat];
}
(*env)->ReleasePrimitiveArrayCritical(env, inTypes, elements, JNI_ABORT);
[[CClipboard sharedClipboard] declareTypes:formatArray withOwner:inJavaClip jniEnv:env];
-JNF_COCOA_EXIT(env);
+JNI_COCOA_EXIT(env);
}
/*
* Class: sun_lwawt_macosx_CClipboard
* Method: setData
@@ -158,21 +158,21 @@
{
if (inBytes == NULL) {
return;
}
-JNF_COCOA_ENTER(env);
+JNI_COCOA_ENTER(env);
jint nBytes = (*env)->GetArrayLength(env, inBytes);
jbyte *rawBytes = (*env)->GetPrimitiveArrayCritical(env, inBytes, NULL);
CHECK_NULL(rawBytes);
NSData *bytesAsData = [NSData dataWithBytes:rawBytes length:nBytes];
(*env)->ReleasePrimitiveArrayCritical(env, inBytes, rawBytes, JNI_ABORT);
NSString *format = formatForIndex(inFormat);
[ThreadUtilities performOnMainThreadWaiting:YES block:^() {
[[NSPasteboard generalPasteboard] setData:bytesAsData forType:format];
}];
-JNF_COCOA_EXIT(env);
+JNI_COCOA_EXIT(env);
}
/*
* Class: sun_lwawt_macosx_CClipboard
* Method: getClipboardFormats
@@ -180,11 +180,11 @@
*/
JNIEXPORT jlongArray JNICALL Java_sun_lwawt_macosx_CClipboard_getClipboardFormats
(JNIEnv *env, jobject inObject)
{
jlongArray returnValue = NULL;
-JNF_COCOA_ENTER(env);
+JNI_COCOA_ENTER(env);
__block NSArray* dataTypes;
[ThreadUtilities performOnMainThreadWaiting:YES block:^() {
dataTypes = [[[NSPasteboard generalPasteboard] types] retain];
}];
@@ -225,11 +225,11 @@
lFormats++;
}
}
(*env)->ReleaseLongArrayElements(env, returnValue, saveFormats, JNI_COMMIT);
-JNF_COCOA_EXIT(env);
+JNI_COCOA_EXIT(env);
return returnValue;
}
/*
* Class: sun_lwawt_macosx_CClipboard
@@ -241,20 +241,20 @@
{
jbyteArray returnValue = NULL;
// Note that this routine makes no attempt to interpret the data, since we're returning
// a byte array back to Java. CDataTransferer will do that if necessary.
-JNF_COCOA_ENTER(env);
+JNI_COCOA_ENTER(env);
NSString *formatAsString = formatForIndex(format);
__block NSData* clipData;
[ThreadUtilities performOnMainThreadWaiting:YES block:^() {
clipData = [[[NSPasteboard generalPasteboard] dataForType:formatAsString] retain];
}];
if (clipData == NULL) {
- [JNFException raise:env as:"java/io/IOException" reason:"Font transform has NaN position"];
+ JNU_ThrowIOException(env, "Font transform has NaN position");
return NULL;
} else {
[clipData autorelease];
}
@@ -267,11 +267,11 @@
if (dataSize != 0) {
const void *dataBuffer = [clipData bytes];
(*env)->SetByteArrayRegion(env, returnValue, 0, dataSize, (jbyte *)dataBuffer);
}
-JNF_COCOA_EXIT(env);
+JNI_COCOA_EXIT(env);
return returnValue;
}
/*
* Class: sun_lwawt_macosx_CClipboard
@@ -280,13 +280,13 @@
*/
JNIEXPORT jboolean JNICALL Java_sun_lwawt_macosx_CClipboard_checkPasteboardWithoutNotification
(JNIEnv *env, jobject inObject)
{
__block BOOL ret = NO;
- JNF_COCOA_ENTER(env);
+ JNI_COCOA_ENTER(env);
[ThreadUtilities performOnMainThreadWaiting:YES block:^(){
ret = [[CClipboard sharedClipboard] checkPasteboardWithoutNotification:nil];
}];
- JNF_COCOA_EXIT(env);
+ JNI_COCOA_EXIT(env);
return ret;
}
< prev index next >