equal
deleted
inserted
replaced
96 Symbol* sym, |
96 Symbol* sym, |
97 bool require_local) { |
97 bool require_local) { |
98 JVMCI_EXCEPTION_CONTEXT; |
98 JVMCI_EXCEPTION_CONTEXT; |
99 |
99 |
100 // Now we need to check the SystemDictionary |
100 // Now we need to check the SystemDictionary |
101 if (sym->byte_at(0) == 'L' && |
101 if (sym->char_at(0) == 'L' && |
102 sym->byte_at(sym->utf8_length()-1) == ';') { |
102 sym->char_at(sym->utf8_length()-1) == ';') { |
103 // This is a name from a signature. Strip off the trimmings. |
103 // This is a name from a signature. Strip off the trimmings. |
104 // Call recursive to keep scope of strippedsym. |
104 // Call recursive to keep scope of strippedsym. |
105 TempNewSymbol strippedsym = SymbolTable::new_symbol(sym->as_utf8()+1, |
105 TempNewSymbol strippedsym = SymbolTable::new_symbol(sym->as_utf8()+1, |
106 sym->utf8_length()-2, |
106 sym->utf8_length()-2, |
107 CHECK_NULL); |
107 CHECK_NULL); |
130 // The element type may be available either locally or via constraints. |
130 // The element type may be available either locally or via constraints. |
131 // In either case, if we can find the element type in the system dictionary, |
131 // In either case, if we can find the element type in the system dictionary, |
132 // we must build an array type around it. The CI requires array klasses |
132 // we must build an array type around it. The CI requires array klasses |
133 // to be loaded if their element klasses are loaded, except when memory |
133 // to be loaded if their element klasses are loaded, except when memory |
134 // is exhausted. |
134 // is exhausted. |
135 if (sym->byte_at(0) == '[' && |
135 if (sym->char_at(0) == '[' && |
136 (sym->byte_at(1) == '[' || sym->byte_at(1) == 'L')) { |
136 (sym->char_at(1) == '[' || sym->char_at(1) == 'L')) { |
137 // We have an unloaded array. |
137 // We have an unloaded array. |
138 // Build it on the fly if the element class exists. |
138 // Build it on the fly if the element class exists. |
139 TempNewSymbol elem_sym = SymbolTable::new_symbol(sym->as_utf8()+1, |
139 TempNewSymbol elem_sym = SymbolTable::new_symbol(sym->as_utf8()+1, |
140 sym->utf8_length()-1, |
140 sym->utf8_length()-1, |
141 CHECK_NULL); |
141 CHECK_NULL); |