1106 THROW_OUT_OF_MEMORY_ERROR();
1107 goto finally;
1108 }
1109
1110 if (sizeof(XIMFeedback) == sizeof(jint)) {
1111 /*
1112 * Optimization to avoid copying the array
1113 */
1114 (*env)->SetIntArrayRegion(env, style, 0,
1115 text->length, (jint *)text->feedback);
1116 } else {
1117 tmpstyle = (jint *)malloc(sizeof(jint)*(text->length));
1118 if (tmpstyle == (jint *) NULL) {
1119 THROW_OUT_OF_MEMORY_ERROR();
1120 goto finally;
1121 }
1122 for (cnt = 0; cnt < (int)text->length; cnt++)
1123 tmpstyle[cnt] = text->feedback[cnt];
1124 (*env)->SetIntArrayRegion(env, style, 0,
1125 text->length, (jint *)tmpstyle);
1126 }
1127 }
1128 }
1129 JNU_CallMethodByName(env, NULL, pX11IMData->x11inputmethod,
1130 "dispatchComposedText",
1131 "(Ljava/lang/String;[IIIIJ)V",
1132 javastr,
1133 style,
1134 (jint)pre_draw->chg_first,
1135 (jint)pre_draw->chg_length,
1136 (jint)pre_draw->caret,
1137 awt_util_nowMillisUTC());
1138 finally:
1139 AWT_UNLOCK();
1140 return;
1141 }
1142
1143 static void
1144 PreeditCaretCallback(XIC ic, XPointer client_data,
1145 XIMPreeditCaretCallbackStruct *pre_caret)
|
1106 THROW_OUT_OF_MEMORY_ERROR();
1107 goto finally;
1108 }
1109
1110 if (sizeof(XIMFeedback) == sizeof(jint)) {
1111 /*
1112 * Optimization to avoid copying the array
1113 */
1114 (*env)->SetIntArrayRegion(env, style, 0,
1115 text->length, (jint *)text->feedback);
1116 } else {
1117 tmpstyle = (jint *)malloc(sizeof(jint)*(text->length));
1118 if (tmpstyle == (jint *) NULL) {
1119 THROW_OUT_OF_MEMORY_ERROR();
1120 goto finally;
1121 }
1122 for (cnt = 0; cnt < (int)text->length; cnt++)
1123 tmpstyle[cnt] = text->feedback[cnt];
1124 (*env)->SetIntArrayRegion(env, style, 0,
1125 text->length, (jint *)tmpstyle);
1126 free(tmpstyle);
1127 }
1128 }
1129 }
1130 JNU_CallMethodByName(env, NULL, pX11IMData->x11inputmethod,
1131 "dispatchComposedText",
1132 "(Ljava/lang/String;[IIIIJ)V",
1133 javastr,
1134 style,
1135 (jint)pre_draw->chg_first,
1136 (jint)pre_draw->chg_length,
1137 (jint)pre_draw->caret,
1138 awt_util_nowMillisUTC());
1139 finally:
1140 AWT_UNLOCK();
1141 return;
1142 }
1143
1144 static void
1145 PreeditCaretCallback(XIC ic, XPointer client_data,
1146 XIMPreeditCaretCallbackStruct *pre_caret)
|