src/share/vm/classfile/javaClasses.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File 8039525 Sdiff src/share/vm/classfile

src/share/vm/classfile/javaClasses.cpp

Print this page




 358 }
 359 
 360 unsigned int java_lang_String::hash_string(oop java_string) {
 361   int          length = java_lang_String::length(java_string);
 362   // Zero length string doesn't hash necessarily hash to zero.
 363   if (length == 0) {
 364     return StringTable::hash_string(NULL, 0);
 365   }
 366 
 367   typeArrayOop value  = java_lang_String::value(java_string);
 368   int          offset = java_lang_String::offset(java_string);
 369   return StringTable::hash_string(value->char_at_addr(offset), length);
 370 }
 371 
 372 Symbol* java_lang_String::as_symbol(Handle java_string, TRAPS) {
 373   oop          obj    = java_string();
 374   typeArrayOop value  = java_lang_String::value(obj);
 375   int          offset = java_lang_String::offset(obj);
 376   int          length = java_lang_String::length(obj);
 377   jchar* base = (length == 0) ? NULL : value->char_at_addr(offset);
 378   Symbol* sym = SymbolTable::lookup_unicode(base, length, THREAD);
 379   return sym;
 380 }
 381 
 382 Symbol* java_lang_String::as_symbol_or_null(oop java_string) {
 383   typeArrayOop value  = java_lang_String::value(java_string);
 384   int          offset = java_lang_String::offset(java_string);
 385   int          length = java_lang_String::length(java_string);
 386   jchar* base = (length == 0) ? NULL : value->char_at_addr(offset);
 387   return SymbolTable::probe_unicode(base, length);
 388 }
 389 
 390 
 391 int java_lang_String::utf8_length(oop java_string) {
 392   typeArrayOop value  = java_lang_String::value(java_string);
 393   int          offset = java_lang_String::offset(java_string);
 394   int          length = java_lang_String::length(java_string);
 395   jchar* position = (length == 0) ? NULL : value->char_at_addr(offset);
 396   return UNICODE::utf8_length(position, length);
 397 }
 398 




 358 }
 359 
 360 unsigned int java_lang_String::hash_string(oop java_string) {
 361   int          length = java_lang_String::length(java_string);
 362   // Zero length string doesn't hash necessarily hash to zero.
 363   if (length == 0) {
 364     return StringTable::hash_string(NULL, 0);
 365   }
 366 
 367   typeArrayOop value  = java_lang_String::value(java_string);
 368   int          offset = java_lang_String::offset(java_string);
 369   return StringTable::hash_string(value->char_at_addr(offset), length);
 370 }
 371 
 372 Symbol* java_lang_String::as_symbol(Handle java_string, TRAPS) {
 373   oop          obj    = java_string();
 374   typeArrayOop value  = java_lang_String::value(obj);
 375   int          offset = java_lang_String::offset(obj);
 376   int          length = java_lang_String::length(obj);
 377   jchar* base = (length == 0) ? NULL : value->char_at_addr(offset);
 378   Symbol* sym = SymbolTable::lookup_and_add_unicode(base, length, THREAD);
 379   return sym;
 380 }
 381 
 382 Symbol* java_lang_String::as_symbol_or_null(oop java_string) {
 383   typeArrayOop value  = java_lang_String::value(java_string);
 384   int          offset = java_lang_String::offset(java_string);
 385   int          length = java_lang_String::length(java_string);
 386   jchar* base = (length == 0) ? NULL : value->char_at_addr(offset);
 387   return SymbolTable::probe_unicode(base, length);
 388 }
 389 
 390 
 391 int java_lang_String::utf8_length(oop java_string) {
 392   typeArrayOop value  = java_lang_String::value(java_string);
 393   int          offset = java_lang_String::offset(java_string);
 394   int          length = java_lang_String::length(java_string);
 395   jchar* position = (length == 0) ? NULL : value->char_at_addr(offset);
 396   return UNICODE::utf8_length(position, length);
 397 }
 398 


src/share/vm/classfile/javaClasses.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File