Mercurial > hg > truffle
diff src/share/vm/classfile/javaClasses.cpp @ 1989:017cd8bce8a8
6539281: -Xcheck:jni should validate char* argument to ReleaseStringUTFChars
Summary: Tag allocated memory with a magic value and verify when releasing.
Reviewed-by: phh, stefank
author | sla |
---|---|
date | Tue, 07 Dec 2010 03:15:45 -0800 |
parents | 828eafbd85cc |
children | 3582bf76420e |
line wrap: on
line diff
--- a/src/share/vm/classfile/javaClasses.cpp Mon Dec 06 20:21:15 2010 -0500 +++ b/src/share/vm/classfile/javaClasses.cpp Tue Dec 07 03:15:45 2010 -0800 @@ -313,6 +313,14 @@ return UNICODE::as_utf8(position, length); } +char* java_lang_String::as_utf8_string(oop java_string, char* buf, int buflen) { + typeArrayOop value = java_lang_String::value(java_string); + int offset = java_lang_String::offset(java_string); + int length = java_lang_String::length(java_string); + jchar* position = (length == 0) ? NULL : value->char_at_addr(offset); + return UNICODE::as_utf8(position, length, buf, buflen); +} + char* java_lang_String::as_utf8_string(oop java_string, int start, int len) { typeArrayOop value = java_lang_String::value(java_string); int offset = java_lang_String::offset(java_string);