1 /* |
1 /* |
2 * Copyright (c) 2005, 2016, Oracle and/or its affiliates. All rights reserved. |
2 * Copyright (c) 2005, 2019, Oracle and/or its affiliates. All rights reserved. |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
4 * |
4 * |
5 * This code is free software; you can redistribute it and/or modify it |
5 * This code is free software; you can redistribute it and/or modify it |
6 * under the terms of the GNU General Public License version 2 only, as |
6 * under the terms of the GNU General Public License version 2 only, as |
7 * published by the Free Software Foundation. Oracle designates this |
7 * published by the Free Software Foundation. Oracle designates this |
22 * or visit www.oracle.com if you need additional information or have any |
22 * or visit www.oracle.com if you need additional information or have any |
23 * questions. |
23 * questions. |
24 */ |
24 */ |
25 |
25 |
26 #include <stdlib.h> |
26 #include <stdlib.h> |
|
27 #include <string.h> |
27 #include "gtk_interface.h" |
28 #include "gtk_interface.h" |
28 #include "com_sun_java_swing_plaf_gtk_GTKEngine.h" |
29 #include "com_sun_java_swing_plaf_gtk_GTKEngine.h" |
29 |
30 |
30 /* Static buffer for conversion from java.lang.String to UTF-8 */ |
31 /* Static buffer for conversion from java.lang.String to UTF-8 */ |
31 static char conversionBuffer[CONV_BUFFER_SIZE]; |
32 static char conversionBuffer[(CONV_BUFFER_SIZE - 1) * 3 + 1]; |
32 |
33 |
33 const char *getStrFor(JNIEnv *env, jstring val) |
34 const char *getStrFor(JNIEnv *env, jstring val) |
34 { |
35 { |
35 int length = (*env)->GetStringLength(env, val); |
36 int length = (*env)->GetStringLength(env, val); |
36 if (length > CONV_BUFFER_SIZE-1) |
37 if (length > CONV_BUFFER_SIZE-1) |
37 { |
38 { |
38 length = CONV_BUFFER_SIZE-1; |
39 length = CONV_BUFFER_SIZE-1; |
39 } |
40 } |
40 |
41 |
|
42 memset(conversionBuffer, 0, sizeof(conversionBuffer)); |
41 (*env)->GetStringUTFRegion(env, val, 0, length, conversionBuffer); |
43 (*env)->GetStringUTFRegion(env, val, 0, length, conversionBuffer); |
42 return conversionBuffer; |
44 return conversionBuffer; |
43 } |
45 } |
44 |
46 |
45 /* |
47 /* |