jdk/src/windows/native/sun/windows/awt_TextComponent.cpp

Print this page
rev 5677 : 7186952: Improve clipboard access
Reviewed-by: serb, ahgross

*** 51,68 **** }; /************************************************************************ * AwtTextComponent fields */ - /* java.awt.TextComponent fields */ - jfieldID AwtTextComponent::canAccessClipboardID; - - /************************************************************************ * AwtTextComponent methods */ AwtTextComponent::AwtTextComponent() { m_synthetic = FALSE; m_lStartPos = -1; m_lEndPos = -1; m_lLastPos = -1; --- 51,66 ---- }; /************************************************************************ * AwtTextComponent fields */ /************************************************************************ * AwtTextComponent methods */ + jmethodID AwtTextComponent::canAccessClipboardMID; + AwtTextComponent::AwtTextComponent() { m_synthetic = FALSE; m_lStartPos = -1; m_lEndPos = -1; m_lLastPos = -1;
*** 365,376 **** if (env->EnsureLocalCapacity(1) < 0) { return mrConsume; } jobject target = GetTarget(env); jboolean canAccessClipboard = ! env->GetBooleanField(target, ! AwtTextComponent::canAccessClipboardID); env->DeleteLocalRef(target); return (canAccessClipboard) ? mrDoDefault : mrConsume; } else { return mrDoDefault; --- 363,373 ---- if (env->EnsureLocalCapacity(1) < 0) { return mrConsume; } jobject target = GetTarget(env); jboolean canAccessClipboard = ! env->CallBooleanMethod (target, AwtTextComponent::canAccessClipboardMID); env->DeleteLocalRef(target); return (canAccessClipboard) ? mrDoDefault : mrConsume; } else { return mrDoDefault;
*** 852,867 **** 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); ! } CATCH_BAD_ALLOC; } --- 849,865 ---- JNIEXPORT void JNICALL Java_sun_awt_windows_WTextComponentPeer_initIDs(JNIEnv *env, jclass cls) { TRY; ! jclass textComponentClassID = env->FindClass("java/awt/TextComponent"); ! AwtTextComponent::canAccessClipboardMID = ! env->GetMethodID(textComponentClassID, ! "canAccessClipboard", "()Z"); ! env->DeleteLocalRef(textComponentClassID); ! ! DASSERT(AwtTextComponent::canAccessClipboardMID != NULL) CATCH_BAD_ALLOC; }