Mercurial > hg > truffle
comparison src/share/vm/classfile/javaClasses.cpp @ 949:489a4f8dcd0f
6865583: Verbose CIPrintMethodCodes asserts when ldc an empty String
Summary: ldc seems to load an empty String and that leads to an assert on offset < length, which are both zero.
Reviewed-by: kvn, never
author | twisti |
---|---|
date | Thu, 27 Aug 2009 06:17:23 -0700 |
parents | 72088be4b386 |
children | 389049f3f393 6aa7255741f3 |
comparison
equal
deleted
inserted
replaced
934:aba04734b61e | 949:489a4f8dcd0f |
---|---|
250 symbolHandle java_lang_String::as_symbol(Handle java_string, TRAPS) { | 250 symbolHandle java_lang_String::as_symbol(Handle java_string, TRAPS) { |
251 oop obj = java_string(); | 251 oop obj = java_string(); |
252 typeArrayOop value = java_lang_String::value(obj); | 252 typeArrayOop value = java_lang_String::value(obj); |
253 int offset = java_lang_String::offset(obj); | 253 int offset = java_lang_String::offset(obj); |
254 int length = java_lang_String::length(obj); | 254 int length = java_lang_String::length(obj); |
255 jchar* base = value->char_at_addr(offset); | 255 jchar* base = (length == 0) ? NULL : value->char_at_addr(offset); |
256 symbolOop sym = SymbolTable::lookup_unicode(base, length, THREAD); | 256 symbolOop sym = SymbolTable::lookup_unicode(base, length, THREAD); |
257 return symbolHandle(THREAD, sym); | 257 return symbolHandle(THREAD, sym); |
258 } | 258 } |
259 | 259 |
260 symbolOop java_lang_String::as_symbol_or_null(oop java_string) { | 260 symbolOop java_lang_String::as_symbol_or_null(oop java_string) { |
261 typeArrayOop value = java_lang_String::value(java_string); | 261 typeArrayOop value = java_lang_String::value(java_string); |
262 int offset = java_lang_String::offset(java_string); | 262 int offset = java_lang_String::offset(java_string); |
263 int length = java_lang_String::length(java_string); | 263 int length = java_lang_String::length(java_string); |
264 jchar* base = value->char_at_addr(offset); | 264 jchar* base = (length == 0) ? NULL : value->char_at_addr(offset); |
265 return SymbolTable::probe_unicode(base, length); | 265 return SymbolTable::probe_unicode(base, length); |
266 } | 266 } |
267 | 267 |
268 | 268 |
269 int java_lang_String::utf8_length(oop java_string) { | 269 int java_lang_String::utf8_length(oop java_string) { |