equal
deleted
inserted
replaced
978 Symbol* sym, |
978 Symbol* sym, |
979 bool require_local) { |
979 bool require_local) { |
980 JVMCI_EXCEPTION_CONTEXT; |
980 JVMCI_EXCEPTION_CONTEXT; |
981 |
981 |
982 // Now we need to check the SystemDictionary |
982 // Now we need to check the SystemDictionary |
983 if (sym->char_at(0) == 'L' && |
983 if (sym->char_at(0) == JVM_SIGNATURE_CLASS && |
984 sym->char_at(sym->utf8_length()-1) == ';') { |
984 sym->char_at(sym->utf8_length()-1) == JVM_SIGNATURE_ENDCLASS) { |
985 // This is a name from a signature. Strip off the trimmings. |
985 // This is a name from a signature. Strip off the trimmings. |
986 // Call recursive to keep scope of strippedsym. |
986 // Call recursive to keep scope of strippedsym. |
987 TempNewSymbol strippedsym = SymbolTable::new_symbol(sym->as_utf8()+1, |
987 TempNewSymbol strippedsym = SymbolTable::new_symbol(sym->as_utf8()+1, |
988 sym->utf8_length()-2); |
988 sym->utf8_length()-2); |
989 return get_klass_by_name_impl(accessing_klass, cpool, strippedsym, require_local); |
989 return get_klass_by_name_impl(accessing_klass, cpool, strippedsym, require_local); |
1011 // The element type may be available either locally or via constraints. |
1011 // The element type may be available either locally or via constraints. |
1012 // In either case, if we can find the element type in the system dictionary, |
1012 // In either case, if we can find the element type in the system dictionary, |
1013 // we must build an array type around it. The CI requires array klasses |
1013 // we must build an array type around it. The CI requires array klasses |
1014 // to be loaded if their element klasses are loaded, except when memory |
1014 // to be loaded if their element klasses are loaded, except when memory |
1015 // is exhausted. |
1015 // is exhausted. |
1016 if (sym->char_at(0) == '[' && |
1016 if (sym->char_at(0) == JVM_SIGNATURE_ARRAY && |
1017 (sym->char_at(1) == '[' || sym->char_at(1) == 'L')) { |
1017 (sym->char_at(1) == JVM_SIGNATURE_ARRAY || sym->char_at(1) == JVM_SIGNATURE_CLASS)) { |
1018 // We have an unloaded array. |
1018 // We have an unloaded array. |
1019 // Build it on the fly if the element class exists. |
1019 // Build it on the fly if the element class exists. |
1020 TempNewSymbol elem_sym = SymbolTable::new_symbol(sym->as_utf8()+1, |
1020 TempNewSymbol elem_sym = SymbolTable::new_symbol(sym->as_utf8()+1, |
1021 sym->utf8_length()-1); |
1021 sym->utf8_length()-1); |
1022 |
1022 |