< prev index next >
src/java.desktop/unix/native/libawt_xawt/awt/awt_UNIXToolkit.c
Print this page
@@ -1,7 +1,7 @@
/*
- * Copyright (c) 2004, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2004, 2019, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
@@ -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,40 +159,43 @@
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;
jboolean result = JNI_FALSE;
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) {
free(stock_id_str);
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)) {
result = gtk->get_icon_data(env, widget_type, stock_id_str,
icon_size, text_direction, detail_str,
< prev index next >