Mercurial > hg > truffle
comparison 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 |
comparison
equal
deleted
inserted
replaced
1988:684faacebf20 | 1989:017cd8bce8a8 |
---|---|
309 typeArrayOop value = java_lang_String::value(java_string); | 309 typeArrayOop value = java_lang_String::value(java_string); |
310 int offset = java_lang_String::offset(java_string); | 310 int offset = java_lang_String::offset(java_string); |
311 int length = java_lang_String::length(java_string); | 311 int length = java_lang_String::length(java_string); |
312 jchar* position = (length == 0) ? NULL : value->char_at_addr(offset); | 312 jchar* position = (length == 0) ? NULL : value->char_at_addr(offset); |
313 return UNICODE::as_utf8(position, length); | 313 return UNICODE::as_utf8(position, length); |
314 } | |
315 | |
316 char* java_lang_String::as_utf8_string(oop java_string, char* buf, int buflen) { | |
317 typeArrayOop value = java_lang_String::value(java_string); | |
318 int offset = java_lang_String::offset(java_string); | |
319 int length = java_lang_String::length(java_string); | |
320 jchar* position = (length == 0) ? NULL : value->char_at_addr(offset); | |
321 return UNICODE::as_utf8(position, length, buf, buflen); | |
314 } | 322 } |
315 | 323 |
316 char* java_lang_String::as_utf8_string(oop java_string, int start, int len) { | 324 char* java_lang_String::as_utf8_string(oop java_string, int start, int len) { |
317 typeArrayOop value = java_lang_String::value(java_string); | 325 typeArrayOop value = java_lang_String::value(java_string); |
318 int offset = java_lang_String::offset(java_string); | 326 int offset = java_lang_String::offset(java_string); |