553 TRAPS); 554 555 // ask Java to compute a constant by invoking a BSM given a Dynamic_info CP entry 556 static Handle link_dynamic_constant(Klass* caller, 557 int condy_index, 558 Handle bootstrap_specifier, 559 Symbol* name, 560 Symbol* type, 561 TRAPS); 562 563 // ask Java to create a dynamic call site, while linking an invokedynamic op 564 static methodHandle find_dynamic_call_site_invoker(Klass* caller, 565 int indy_index, 566 Handle bootstrap_method, 567 Symbol* name, 568 Symbol* type, 569 Handle *appendix_result, 570 Handle *method_type_result, 571 TRAPS); 572 573 // Utility for printing loader "name" as part of tracing constraints 574 static const char* loader_name(const oop loader); 575 static const char* loader_name(const ClassLoaderData* loader_data); 576 577 // Record the error when the first attempt to resolve a reference from a constant 578 // pool entry to a class fails. 579 static void add_resolution_error(const constantPoolHandle& pool, int which, Symbol* error, 580 Symbol* message); 581 static void delete_resolution_error(ConstantPool* pool); 582 static Symbol* find_resolution_error(const constantPoolHandle& pool, int which, 583 Symbol** message); 584 585 586 static ProtectionDomainCacheEntry* cache_get(Handle protection_domain); 587 588 protected: 589 590 enum Constants { 591 _loader_constraint_size = 107, // number of entries in constraint table 592 _resolution_error_size = 107, // number of entries in resolution error table 593 _invoke_method_size = 139, // number of entries in invoke method table 594 _shared_dictionary_size = 1009, // number of entries in shared dictionary 595 _placeholder_table_size = 1009 // number of entries in hash table for placeholders 596 }; | 553 TRAPS); 554 555 // ask Java to compute a constant by invoking a BSM given a Dynamic_info CP entry 556 static Handle link_dynamic_constant(Klass* caller, 557 int condy_index, 558 Handle bootstrap_specifier, 559 Symbol* name, 560 Symbol* type, 561 TRAPS); 562 563 // ask Java to create a dynamic call site, while linking an invokedynamic op 564 static methodHandle find_dynamic_call_site_invoker(Klass* caller, 565 int indy_index, 566 Handle bootstrap_method, 567 Symbol* name, 568 Symbol* type, 569 Handle *appendix_result, 570 Handle *method_type_result, 571 TRAPS); 572 573 // Record the error when the first attempt to resolve a reference from a constant 574 // pool entry to a class fails. 575 static void add_resolution_error(const constantPoolHandle& pool, int which, Symbol* error, 576 Symbol* message); 577 static void delete_resolution_error(ConstantPool* pool); 578 static Symbol* find_resolution_error(const constantPoolHandle& pool, int which, 579 Symbol** message); 580 581 582 static ProtectionDomainCacheEntry* cache_get(Handle protection_domain); 583 584 protected: 585 586 enum Constants { 587 _loader_constraint_size = 107, // number of entries in constraint table 588 _resolution_error_size = 107, // number of entries in resolution error table 589 _invoke_method_size = 139, // number of entries in invoke method table 590 _shared_dictionary_size = 1009, // number of entries in shared dictionary 591 _placeholder_table_size = 1009 // number of entries in hash table for placeholders 592 }; |