summaryrefslogtreecommitdiffstats
path: root/luni/src/main/native/libcore_icu_NativeIDN.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'luni/src/main/native/libcore_icu_NativeIDN.cpp')
-rw-r--r--luni/src/main/native/libcore_icu_NativeIDN.cpp9
1 files changed, 5 insertions, 4 deletions
diff --git a/luni/src/main/native/libcore_icu_NativeIDN.cpp b/luni/src/main/native/libcore_icu_NativeIDN.cpp
index 43f3ce5..9786b9d 100644
--- a/luni/src/main/native/libcore_icu_NativeIDN.cpp
+++ b/luni/src/main/native/libcore_icu_NativeIDN.cpp
@@ -37,7 +37,8 @@ static jstring NativeIDN_convertImpl(JNIEnv* env, jclass, jstring javaSrc, jint
if (src.get() == NULL) {
return NULL;
}
- UChar dst[256];
+ static const size_t kDstSize = 512;
+ UChar dst[kDstSize];
UErrorCode status = U_ZERO_ERROR;
// We're stuck implementing IDNA-2003 for now since that's what we specify.
@@ -47,10 +48,10 @@ static jstring NativeIDN_convertImpl(JNIEnv* env, jclass, jstring javaSrc, jint
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
size_t resultLength = toAscii
- ? uidna_IDNToASCII(src.get(), src.size(), &dst[0], sizeof(dst), flags, NULL, &status)
- : uidna_IDNToUnicode(src.get(), src.size(), &dst[0], sizeof(dst), flags, NULL, &status);
+ ? uidna_IDNToASCII(src.get(), src.size(), &dst[0], kDstSize, flags, NULL, &status)
+ : uidna_IDNToUnicode(src.get(), src.size(), &dst[0], kDstSize, flags, NULL, &status);
#pragma GCC diagnostic pop
-
+
if (U_FAILURE(status)) {
jniThrowException(env, "java/lang/IllegalArgumentException", u_errorName(status));
return NULL;