< prev index next >

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

Print this page

        

@@ -111,30 +111,32 @@
 Java_sun_awt_UNIXToolkit_load_1gtk_1icon(JNIEnv *env, jobject this,
         jstring filename)
 {
 #ifndef HEADLESS
     int len;
+    jsize jlen;
     char *filename_str = NULL;
     GError **error = NULL;
 
     if (filename == NULL)
     {
         return JNI_FALSE;
     }
 
     len = (*env)->GetStringUTFLength(env, filename);
+    jlen = (*env)->GetStringLength(env, filename);
     filename_str = (char *)SAFE_SIZE_ARRAY_ALLOC(malloc,
             sizeof(char), len + 1);
     if (filename_str == NULL) {
         JNU_ThrowOutOfMemoryError(env, "OutOfMemoryError");
         return JNI_FALSE;
     }
     if (!init_method(env, this) ) {
         free(filename_str);
         return JNI_FALSE;
     }
-    (*env)->GetStringUTFRegion(env, filename, 0, len, filename_str);
+    (*env)->GetStringUTFRegion(env, filename, 0, jlen, filename_str);
     jboolean result = gtk->get_file_icon_data(env, filename_str, error,
                                             icon_upcall_method, this);
 
     /* Release the strings we've allocated. */
     free(filename_str);

@@ -157,38 +159,41 @@
         jint widget_type, jstring stock_id, jint icon_size,
         jint text_direction, jstring detail)
 {
 #ifndef HEADLESS
     int len;
+    jsize jlen;
     char *stock_id_str = NULL;
     char *detail_str = NULL;
 
     if (stock_id == NULL)
     {
         return JNI_FALSE;
     }
 
     len = (*env)->GetStringUTFLength(env, stock_id);
+    jlen = (*env)->GetStringLength(env, stock_id);
     stock_id_str = (char *)SAFE_SIZE_ARRAY_ALLOC(malloc,
             sizeof(char), len + 1);
     if (stock_id_str == NULL) {
         JNU_ThrowOutOfMemoryError(env, "OutOfMemoryError");
         return JNI_FALSE;
     }
-    (*env)->GetStringUTFRegion(env, stock_id, 0, len, stock_id_str);
+    (*env)->GetStringUTFRegion(env, stock_id, 0, jlen, stock_id_str);
 
     /* Detail isn't required so check for NULL. */
     if (detail != NULL)
     {
         len = (*env)->GetStringUTFLength(env, detail);
+        jlen = (*env)->GetStringLength(env, detail);
         detail_str = (char *)SAFE_SIZE_ARRAY_ALLOC(malloc,
                 sizeof(char), len + 1);
         if (detail_str == NULL) {
             JNU_ThrowOutOfMemoryError(env, "OutOfMemoryError");
             return JNI_FALSE;
         }
-        (*env)->GetStringUTFRegion(env, detail, 0, len, detail_str);
+        (*env)->GetStringUTFRegion(env, detail, 0, jlen, detail_str);
     }
 
     if (!init_method(env, this) ) {
         return JNI_FALSE;
     }
< prev index next >