< prev index next >

src/java.desktop/unix/native/libawt_xawt/awt/awt_InputMethod.c

Print this page




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)


< prev index next >