hotspot/src/share/vm/classfile/javaClasses.cpp
changeset 43422 d4693bf78777
parent 42656 5360d39e2aba
child 43677 5228814c1da2
equal deleted inserted replaced
43421:077af5bb5fa4 43422:d4693bf78777
   161 void java_lang_String::compute_offsets() {
   161 void java_lang_String::compute_offsets() {
   162   assert(!initialized, "offsets should be initialized only once");
   162   assert(!initialized, "offsets should be initialized only once");
   163 
   163 
   164   Klass* k = SystemDictionary::String_klass();
   164   Klass* k = SystemDictionary::String_klass();
   165   compute_offset(value_offset,           k, vmSymbols::value_name(),  vmSymbols::byte_array_signature());
   165   compute_offset(value_offset,           k, vmSymbols::value_name(),  vmSymbols::byte_array_signature());
   166   compute_optional_offset(hash_offset,   k, vmSymbols::hash_name(),   vmSymbols::int_signature());
   166   compute_offset(hash_offset,            k, vmSymbols::hash_name(),   vmSymbols::int_signature());
   167   compute_optional_offset(coder_offset,  k, vmSymbols::coder_name(),  vmSymbols::byte_signature());
   167   compute_offset(coder_offset,           k, vmSymbols::coder_name(),  vmSymbols::byte_signature());
   168 
   168 
   169   initialized = true;
   169   initialized = true;
   170 }
   170 }
   171 
   171 
   172 class CompactStringsFixup : public FieldClosure {
   172 class CompactStringsFixup : public FieldClosure {
  3975   valid &= check_constant(klass_name, cpp_klass_name :: field_name, #field_name, field_sig)
  3975   valid &= check_constant(klass_name, cpp_klass_name :: field_name, #field_name, field_sig)
  3976 
  3976 
  3977   // java.lang.String
  3977   // java.lang.String
  3978 
  3978 
  3979   CHECK_OFFSET("java/lang/String", java_lang_String, value, "[B");
  3979   CHECK_OFFSET("java/lang/String", java_lang_String, value, "[B");
  3980   if (java_lang_String::has_hash_field()) {
  3980   CHECK_OFFSET("java/lang/String", java_lang_String, hash, "I");
  3981     CHECK_OFFSET("java/lang/String", java_lang_String, hash, "I");
  3981   CHECK_OFFSET("java/lang/String", java_lang_String, coder, "B");
  3982   }
       
  3983   if (java_lang_String::has_coder_field()) {
       
  3984     CHECK_OFFSET("java/lang/String", java_lang_String, coder, "B");
       
  3985   }
       
  3986 
  3982 
  3987   // java.lang.Class
  3983   // java.lang.Class
  3988 
  3984 
  3989   // Fake fields
  3985   // Fake fields
  3990   // CHECK_OFFSET("java/lang/Class", java_lang_Class, klass); // %%% this needs to be checked
  3986   // CHECK_OFFSET("java/lang/Class", java_lang_Class, klass); // %%% this needs to be checked