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) { |