< prev index next >

src/hotspot/share/classfile/vmSymbols.cpp

Print this page

 93     _type_signatures[T_BYTE]    = byte_signature();
 94     _type_signatures[T_CHAR]    = char_signature();
 95     _type_signatures[T_DOUBLE]  = double_signature();
 96     _type_signatures[T_FLOAT]   = float_signature();
 97     _type_signatures[T_INT]     = int_signature();
 98     _type_signatures[T_LONG]    = long_signature();
 99     _type_signatures[T_SHORT]   = short_signature();
100     _type_signatures[T_BOOLEAN] = bool_signature();
101     _type_signatures[T_VOID]    = void_signature();
102 #ifdef ASSERT
103     for (int i = (int)T_BOOLEAN; i < (int)T_VOID+1; i++) {
104       Symbol* s = _type_signatures[i];
105       if (s == nullptr)  continue;
106       SignatureStream ss(s, false);
107       assert(ss.type() == i, "matching signature");
108       assert(!ss.is_reference(), "no single-char signature for T_OBJECT, etc.");
109     }
110 #endif
111   }
112 


113 #ifdef ASSERT
114   // Check for duplicates:
115 
116   for (auto i1 : EnumRange<vmSymbolID>{}) {
117     Symbol* sym = symbol_at(i1);
118     for (auto i2 : EnumRange<vmSymbolID>{vmSymbolID::FIRST_SID, i1}) {
119       if (i2 != i1 && symbol_at(i2) == sym) {
120         tty->print("*** Duplicate VM symbol SIDs %s(%d) and %s(%d): \"",
121                    vm_symbol_enum_name(i2), as_int(i2),
122                    vm_symbol_enum_name(i1), as_int(i1));
123         sym->print_symbol_on(tty);
124         tty->print_cr("\"");
125       }
126     }
127   }
128 #endif //ASSERT
129 
130   // Create an index for find_id:
131   {
132     for (auto index : EnumRange<vmSymbolID>{}) {

279       if (sym2 == symbol) {
280         sid2 = index;
281         break;
282       }
283     }
284     // Unless it's a duplicate, assert that the sids are the same.
285     if (Symbol::_vm_symbols[as_int(sid)] != Symbol::_vm_symbols[as_int(sid2)]) {
286       assert(sid == sid2, "binary same as linear search");
287     }
288   }
289 #endif //ASSERT
290 
291   return sid;
292 }
293 
294 vmSymbolID vmSymbols::find_sid(const char* symbol_name) {
295   Symbol* symbol = SymbolTable::probe(symbol_name, (int) strlen(symbol_name));
296   if (symbol == nullptr)  return vmSymbolID::NO_SID;
297   return find_sid(symbol);
298 }










































 93     _type_signatures[T_BYTE]    = byte_signature();
 94     _type_signatures[T_CHAR]    = char_signature();
 95     _type_signatures[T_DOUBLE]  = double_signature();
 96     _type_signatures[T_FLOAT]   = float_signature();
 97     _type_signatures[T_INT]     = int_signature();
 98     _type_signatures[T_LONG]    = long_signature();
 99     _type_signatures[T_SHORT]   = short_signature();
100     _type_signatures[T_BOOLEAN] = bool_signature();
101     _type_signatures[T_VOID]    = void_signature();
102 #ifdef ASSERT
103     for (int i = (int)T_BOOLEAN; i < (int)T_VOID+1; i++) {
104       Symbol* s = _type_signatures[i];
105       if (s == nullptr)  continue;
106       SignatureStream ss(s, false);
107       assert(ss.type() == i, "matching signature");
108       assert(!ss.is_reference(), "no single-char signature for T_OBJECT, etc.");
109     }
110 #endif
111   }
112 
113   initialize_migrated_class_names();
114 
115 #ifdef ASSERT
116   // Check for duplicates:
117 
118   for (auto i1 : EnumRange<vmSymbolID>{}) {
119     Symbol* sym = symbol_at(i1);
120     for (auto i2 : EnumRange<vmSymbolID>{vmSymbolID::FIRST_SID, i1}) {
121       if (i2 != i1 && symbol_at(i2) == sym) {
122         tty->print("*** Duplicate VM symbol SIDs %s(%d) and %s(%d): \"",
123                    vm_symbol_enum_name(i2), as_int(i2),
124                    vm_symbol_enum_name(i1), as_int(i1));
125         sym->print_symbol_on(tty);
126         tty->print_cr("\"");
127       }
128     }
129   }
130 #endif //ASSERT
131 
132   // Create an index for find_id:
133   {
134     for (auto index : EnumRange<vmSymbolID>{}) {

281       if (sym2 == symbol) {
282         sid2 = index;
283         break;
284       }
285     }
286     // Unless it's a duplicate, assert that the sids are the same.
287     if (Symbol::_vm_symbols[as_int(sid)] != Symbol::_vm_symbols[as_int(sid2)]) {
288       assert(sid == sid2, "binary same as linear search");
289     }
290   }
291 #endif //ASSERT
292 
293   return sid;
294 }
295 
296 vmSymbolID vmSymbols::find_sid(const char* symbol_name) {
297   Symbol* symbol = SymbolTable::probe(symbol_name, (int) strlen(symbol_name));
298   if (symbol == nullptr)  return vmSymbolID::NO_SID;
299   return find_sid(symbol);
300 }
301 
302 // The list of these migrated value classes is in
303 // open/make/modules/java.base/gensrc/GensrcValueClasses.gmk.
304 
305 Symbol* vmSymbols::_migrated_class_names[_migrated_class_names_length];
306 
307 void vmSymbols::initialize_migrated_class_names() {
308   int i = 0;
309   _migrated_class_names[i++] = java_lang_Byte();
310   _migrated_class_names[i++] = java_lang_Short();
311   _migrated_class_names[i++] = java_lang_Integer();
312   _migrated_class_names[i++] = java_lang_Long();
313   _migrated_class_names[i++] = java_lang_Float();
314   _migrated_class_names[i++] = java_lang_Double();
315   _migrated_class_names[i++] = java_lang_Boolean();
316   _migrated_class_names[i++] = java_lang_Character();
317   _migrated_class_names[i++] = java_lang_Number();
318   _migrated_class_names[i++] = java_lang_Record();
319   _migrated_class_names[i++] = java_util_Optional();
320   _migrated_class_names[i++] = java_util_OptionalInt();
321   _migrated_class_names[i++] = java_util_OptionalLong();
322   _migrated_class_names[i++] = java_util_OptionalDouble();
323   _migrated_class_names[i++] = java_time_LocalDate();
324   _migrated_class_names[i++] = java_time_LocalDateTime();
325   _migrated_class_names[i++] = java_time_LocalTime();
326   _migrated_class_names[i++] = java_time_Duration();
327   _migrated_class_names[i++] = java_time_Instant();
328   _migrated_class_names[i++] = java_time_MonthDay();
329   _migrated_class_names[i++] = java_time_ZonedDateTime();
330   _migrated_class_names[i++] = java_time_OffsetDateTime();
331   _migrated_class_names[i++] = java_time_OffsetTime();
332   _migrated_class_names[i++] = java_time_YearMonth();
333   _migrated_class_names[i++] = java_time_Year();
334   _migrated_class_names[i++] = java_time_Period();
335   _migrated_class_names[i++] = java_time_chrono_ChronoLocalDateImpl();
336   _migrated_class_names[i++] = java_time_chrono_MinguoDate();
337   _migrated_class_names[i++] = java_time_chrono_HijrahDate();
338   _migrated_class_names[i++] = java_time_chrono_JapaneseDate();
339   _migrated_class_names[i++] = java_time_chrono_ThaiBuddhistDate();
340   assert(i == _migrated_class_names_length, "should be");
341 }
< prev index next >