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);