src/hotspot/share/jvmci/jvmciRuntime.cpp
changeset 58722 cba8afa5cfed
parent 58226 408c445d04e8
child 58760 1f7f707c1aa9
equal deleted inserted replaced
58720:ae0af9fb3dbb 58722:cba8afa5cfed
   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