< prev index next >

src/share/vm/classfile/javaClasses.cpp

Print this page




3226       ShouldNotReachHere();
3227     }
3228   }
3229   mname->address_field_put(_vmtarget_offset, (address)ref);
3230   // Add a reference to the loader (actually mirror because anonymous classes will not have
3231   // distinct loaders) to ensure the metadata is kept alive
3232   // This mirror may be different than the one in clazz field.
3233   mname->obj_field_put(_vmloader_offset, dependency);
3234 }
3235 
3236 intptr_t java_lang_invoke_MemberName::vmindex(oop mname) {
3237   assert(is_instance(mname), "wrong type");
3238   return (intptr_t) mname->address_field(_vmindex_offset);
3239 }
3240 
3241 void java_lang_invoke_MemberName::set_vmindex(oop mname, intptr_t index) {
3242   assert(is_instance(mname), "wrong type");
3243   mname->address_field_put(_vmindex_offset, (address) index);
3244 }
3245 
3246 bool java_lang_invoke_MemberName::equals(oop mn1, oop mn2) {
3247   if (mn1 == mn2) {
3248      return true;
3249   }
3250   return (vmtarget(mn1) == vmtarget(mn2) && flags(mn1) == flags(mn2) &&
3251           vmindex(mn1) == vmindex(mn2) &&
3252           clazz(mn1) == clazz(mn2));
3253 }
3254 
3255 oop java_lang_invoke_LambdaForm::vmentry(oop lform) {
3256   assert(is_instance(lform), "wrong type");
3257   return lform->obj_field(_vmentry_offset);
3258 }
3259 
3260 
3261 // Support for java_lang_invoke_MethodType
3262 
3263 int java_lang_invoke_MethodType::_rtype_offset;
3264 int java_lang_invoke_MethodType::_ptypes_offset;
3265 
3266 void java_lang_invoke_MethodType::compute_offsets() {
3267   Klass* k = SystemDictionary::MethodType_klass();
3268   if (k != NULL) {
3269     compute_offset(_rtype_offset,  k, vmSymbols::rtype_name(),  vmSymbols::class_signature());
3270     compute_offset(_ptypes_offset, k, vmSymbols::ptypes_name(), vmSymbols::class_array_signature());
3271   }
3272 }
3273 
3274 void java_lang_invoke_MethodType::print_signature(oop mt, outputStream* st) {




3226       ShouldNotReachHere();
3227     }
3228   }
3229   mname->address_field_put(_vmtarget_offset, (address)ref);
3230   // Add a reference to the loader (actually mirror because anonymous classes will not have
3231   // distinct loaders) to ensure the metadata is kept alive
3232   // This mirror may be different than the one in clazz field.
3233   mname->obj_field_put(_vmloader_offset, dependency);
3234 }
3235 
3236 intptr_t java_lang_invoke_MemberName::vmindex(oop mname) {
3237   assert(is_instance(mname), "wrong type");
3238   return (intptr_t) mname->address_field(_vmindex_offset);
3239 }
3240 
3241 void java_lang_invoke_MemberName::set_vmindex(oop mname, intptr_t index) {
3242   assert(is_instance(mname), "wrong type");
3243   mname->address_field_put(_vmindex_offset, (address) index);
3244 }
3245 









3246 oop java_lang_invoke_LambdaForm::vmentry(oop lform) {
3247   assert(is_instance(lform), "wrong type");
3248   return lform->obj_field(_vmentry_offset);
3249 }
3250 
3251 
3252 // Support for java_lang_invoke_MethodType
3253 
3254 int java_lang_invoke_MethodType::_rtype_offset;
3255 int java_lang_invoke_MethodType::_ptypes_offset;
3256 
3257 void java_lang_invoke_MethodType::compute_offsets() {
3258   Klass* k = SystemDictionary::MethodType_klass();
3259   if (k != NULL) {
3260     compute_offset(_rtype_offset,  k, vmSymbols::rtype_name(),  vmSymbols::class_signature());
3261     compute_offset(_ptypes_offset, k, vmSymbols::ptypes_name(), vmSymbols::class_array_signature());
3262   }
3263 }
3264 
3265 void java_lang_invoke_MethodType::print_signature(oop mt, outputStream* st) {


< prev index next >