< prev index next >

src/hotspot/share/code/dependencies.cpp

roman_version

1800   ClassHierarchyWalker wf(m1);                                                                                                       
1801   wf.add_participant(m1->method_holder());                                                                                           
1802   wf.add_participant(m2->method_holder());                                                                                           
1803   return wf.find_witness_definer(ctxk, changes);                                                                                     
1804 }                                                                                                                                    
1805 
1806 Klass* Dependencies::check_has_no_finalizable_subclasses(Klass* ctxk, KlassDepChange* changes) {                                     
1807   Klass* search_at = ctxk;                                                                                                           
1808   if (changes != NULL)                                                                                                               
1809     search_at = changes->new_type(); // just look at the new bit                                                                     
1810   return find_finalizable_subclass(search_at);                                                                                       
1811 }                                                                                                                                    
1812 
1813 Klass* Dependencies::check_call_site_target_value(oop call_site, oop method_handle, CallSiteDepChange* changes) {                    
1814   assert(call_site != NULL, "sanity");                                                                                               
1815   assert(method_handle != NULL, "sanity");                                                                                           
1816   assert(call_site->is_a(SystemDictionary::CallSite_klass()),     "sanity");                                                         
1817 
1818   if (changes == NULL) {                                                                                                             
1819     // Validate all CallSites                                                                                                        
1820     if (java_lang_invoke_CallSite::target(call_site) != method_handle)                                                               
1821       return call_site->klass();  // assertion failed                                                                                
1822   } else {                                                                                                                           
1823     // Validate the given CallSite                                                                                                   
1824     if (call_site == changes->call_site() && java_lang_invoke_CallSite::target(call_site) != changes->method_handle()) {             
1825       assert(method_handle != changes->method_handle(), "must be");                                                                  
1826       return call_site->klass();  // assertion failed                                                                                
1827     }                                                                                                                                
1828   }                                                                                                                                  
1829   return NULL;  // assertion still valid                                                                                             
1830 }                                                                                                                                    
1831 
1832 void Dependencies::DepStream::trace_and_log_witness(Klass* witness) {                                                                
1833   if (witness != NULL) {                                                                                                             
1834     if (TraceDependencies) {                                                                                                         
1835       print_dependency(witness, /*verbose=*/ true);                                                                                  
1836     }                                                                                                                                
1837     // The following is a no-op unless logging is enabled:                                                                           
1838     log_dependency(witness);                                                                                                         
1839   }                                                                                                                                  
1840 }                                                                                                                                    
1841 
1842 
1843 Klass* Dependencies::DepStream::check_klass_dependency(KlassDepChange* changes) {                                                    
1844   assert_locked_or_safepoint(Compile_lock);                                                                                          

1800   ClassHierarchyWalker wf(m1);
1801   wf.add_participant(m1->method_holder());
1802   wf.add_participant(m2->method_holder());
1803   return wf.find_witness_definer(ctxk, changes);
1804 }
1805 
1806 Klass* Dependencies::check_has_no_finalizable_subclasses(Klass* ctxk, KlassDepChange* changes) {
1807   Klass* search_at = ctxk;
1808   if (changes != NULL)
1809     search_at = changes->new_type(); // just look at the new bit
1810   return find_finalizable_subclass(search_at);
1811 }
1812 
1813 Klass* Dependencies::check_call_site_target_value(oop call_site, oop method_handle, CallSiteDepChange* changes) {
1814   assert(call_site != NULL, "sanity");
1815   assert(method_handle != NULL, "sanity");
1816   assert(call_site->is_a(SystemDictionary::CallSite_klass()),     "sanity");
1817 
1818   if (changes == NULL) {
1819     // Validate all CallSites
1820     if (!oopDesc::equals(java_lang_invoke_CallSite::target(call_site), method_handle))
1821       return call_site->klass();  // assertion failed
1822   } else {
1823     // Validate the given CallSite
1824     if (oopDesc::equals(call_site, changes->call_site()) && !oopDesc::equals(java_lang_invoke_CallSite::target(call_site), changes->m
1825       assert(!oopDesc::equals(method_handle, changes->method_handle()), "must be");
1826       return call_site->klass();  // assertion failed
1827     }
1828   }
1829   return NULL;  // assertion still valid
1830 }
1831 
1832 void Dependencies::DepStream::trace_and_log_witness(Klass* witness) {
1833   if (witness != NULL) {
1834     if (TraceDependencies) {
1835       print_dependency(witness, /*verbose=*/ true);
1836     }
1837     // The following is a no-op unless logging is enabled:
1838     log_dependency(witness);
1839   }
1840 }
1841 
1842 
1843 Klass* Dependencies::DepStream::check_klass_dependency(KlassDepChange* changes) {
1844   assert_locked_or_safepoint(Compile_lock);
< prev index next >