equal
deleted
inserted
replaced
43 oop str = *(oop*)string_result; // Is it resolved already? |
43 oop str = *(oop*)string_result; // Is it resolved already? |
44 if (str == NULL) { // Do resolution |
44 if (str == NULL) { // Do resolution |
45 // First 2 bytes of name contains length (number of bytes). |
45 // First 2 bytes of name contains length (number of bytes). |
46 int len = Bytes::get_Java_u2((address)name); |
46 int len = Bytes::get_Java_u2((address)name); |
47 name += 2; |
47 name += 2; |
48 TempNewSymbol sym = SymbolTable::new_symbol(name, len, CHECK); |
48 str = StringTable::intern(name, CHECK); |
49 str = StringTable::intern(sym, CHECK); |
|
50 assert(java_lang_String::is_instance(str), "must be string"); |
49 assert(java_lang_String::is_instance(str), "must be string"); |
51 *(oop*)string_result = str; // Store result |
50 *(oop*)string_result = str; // Store result |
52 } |
51 } |
53 assert(str != NULL, "Should be allocated!"); |
52 assert(str != NULL, "Should be allocated!"); |
54 thread->set_vm_result(str); |
53 thread->set_vm_result(str); |
76 if (name[0] == 'L') { |
75 if (name[0] == 'L') { |
77 assert(len > 2, "small name %s", name); |
76 assert(len > 2, "small name %s", name); |
78 name++; |
77 name++; |
79 len -= 2; |
78 len -= 2; |
80 } |
79 } |
81 TempNewSymbol sym = SymbolTable::new_symbol(name, len, CHECK_NULL); |
80 TempNewSymbol sym = SymbolTable::new_symbol(name, len); |
82 if (sym == NULL) { |
81 if (sym == NULL) { |
83 return NULL; |
82 return NULL; |
84 } |
83 } |
85 Klass* k = SystemDictionary::resolve_or_fail(sym, loader, protection_domain, true, CHECK_NULL); |
84 Klass* k = SystemDictionary::resolve_or_fail(sym, loader, protection_domain, true, CHECK_NULL); |
86 |
85 |