jdk/src/windows/native/sun/windows/awt_TextComponent.cpp
Print this page
rev 5677 : 7186952: Improve clipboard access
Reviewed-by: serb, ahgross
@@ -51,18 +51,16 @@
};
/************************************************************************
* AwtTextComponent fields
*/
-/* java.awt.TextComponent fields */
-jfieldID AwtTextComponent::canAccessClipboardID;
-
-
/************************************************************************
* AwtTextComponent methods
*/
+jmethodID AwtTextComponent::canAccessClipboardMID;
+
AwtTextComponent::AwtTextComponent() {
m_synthetic = FALSE;
m_lStartPos = -1;
m_lEndPos = -1;
m_lLastPos = -1;
@@ -365,12 +363,11 @@
if (env->EnsureLocalCapacity(1) < 0) {
return mrConsume;
}
jobject target = GetTarget(env);
jboolean canAccessClipboard =
- env->GetBooleanField(target,
- AwtTextComponent::canAccessClipboardID);
+ env->CallBooleanMethod (target, AwtTextComponent::canAccessClipboardMID);
env->DeleteLocalRef(target);
return (canAccessClipboard) ? mrDoDefault : mrConsume;
}
else {
return mrDoDefault;
@@ -852,16 +849,17 @@
JNIEXPORT void JNICALL
Java_sun_awt_windows_WTextComponentPeer_initIDs(JNIEnv *env, jclass cls)
{
TRY;
- cls = env->FindClass("java/awt/TextComponent");
- if (cls != NULL) {
- AwtTextComponent::canAccessClipboardID =
- env->GetFieldID(cls, "canAccessClipboard", "Z");
- DASSERT(AwtTextComponent::canAccessClipboardID != NULL);
- }
+ jclass textComponentClassID = env->FindClass("java/awt/TextComponent");
+ AwtTextComponent::canAccessClipboardMID =
+ env->GetMethodID(textComponentClassID,
+ "canAccessClipboard", "()Z");
+ env->DeleteLocalRef(textComponentClassID);
+
+ DASSERT(AwtTextComponent::canAccessClipboardMID != NULL)
CATCH_BAD_ALLOC;
}