150 assert(_adapter != NULL, "must have"); |
150 assert(_adapter != NULL, "must have"); |
151 return _adapter->get_c2i_unverified_entry(); |
151 return _adapter->get_c2i_unverified_entry(); |
152 } |
152 } |
153 |
153 |
154 char* Method::name_and_sig_as_C_string() const { |
154 char* Method::name_and_sig_as_C_string() const { |
155 return name_and_sig_as_C_string(Klass::cast(constants()->pool_holder()), name(), signature()); |
155 return name_and_sig_as_C_string(constants()->pool_holder(), name(), signature()); |
156 } |
156 } |
157 |
157 |
158 char* Method::name_and_sig_as_C_string(char* buf, int size) const { |
158 char* Method::name_and_sig_as_C_string(char* buf, int size) const { |
159 return name_and_sig_as_C_string(Klass::cast(constants()->pool_holder()), name(), signature(), buf, size); |
159 return name_and_sig_as_C_string(constants()->pool_holder(), name(), signature(), buf, size); |
160 } |
160 } |
161 |
161 |
162 char* Method::name_and_sig_as_C_string(Klass* klass, Symbol* method_name, Symbol* signature) { |
162 char* Method::name_and_sig_as_C_string(Klass* klass, Symbol* method_name, Symbol* signature) { |
163 const char* klass_name = klass->external_name(); |
163 const char* klass_name = klass->external_name(); |
164 int klass_name_len = (int)strlen(klass_name); |
164 int klass_name_len = (int)strlen(klass_name); |
576 objArrayOop m_oop = oopFactory::new_objArray(SystemDictionary::Class_klass(), length, CHECK_(objArrayHandle())); |
576 objArrayOop m_oop = oopFactory::new_objArray(SystemDictionary::Class_klass(), length, CHECK_(objArrayHandle())); |
577 objArrayHandle mirrors (THREAD, m_oop); |
577 objArrayHandle mirrors (THREAD, m_oop); |
578 for (int i = 0; i < length; i++) { |
578 for (int i = 0; i < length; i++) { |
579 CheckedExceptionElement* table = h_this->checked_exceptions_start(); // recompute on each iteration, not gc safe |
579 CheckedExceptionElement* table = h_this->checked_exceptions_start(); // recompute on each iteration, not gc safe |
580 Klass* k = h_this->constants()->klass_at(table[i].class_cp_index, CHECK_(objArrayHandle())); |
580 Klass* k = h_this->constants()->klass_at(table[i].class_cp_index, CHECK_(objArrayHandle())); |
581 assert(Klass::cast(k)->is_subclass_of(SystemDictionary::Throwable_klass()), "invalid exception class"); |
581 assert(k->is_subclass_of(SystemDictionary::Throwable_klass()), "invalid exception class"); |
582 mirrors->obj_at_put(i, Klass::cast(k)->java_mirror()); |
582 mirrors->obj_at_put(i, k->java_mirror()); |
583 } |
583 } |
584 return mirrors; |
584 return mirrors; |
585 } |
585 } |
586 }; |
586 }; |
587 |
587 |
616 bool Method::is_klass_loaded_by_klass_index(int klass_index) const { |
616 bool Method::is_klass_loaded_by_klass_index(int klass_index) const { |
617 if( constants()->tag_at(klass_index).is_unresolved_klass() ) { |
617 if( constants()->tag_at(klass_index).is_unresolved_klass() ) { |
618 Thread *thread = Thread::current(); |
618 Thread *thread = Thread::current(); |
619 Symbol* klass_name = constants()->klass_name_at(klass_index); |
619 Symbol* klass_name = constants()->klass_name_at(klass_index); |
620 Handle loader(thread, method_holder()->class_loader()); |
620 Handle loader(thread, method_holder()->class_loader()); |
621 Handle prot (thread, Klass::cast(method_holder())->protection_domain()); |
621 Handle prot (thread, method_holder()->protection_domain()); |
622 return SystemDictionary::find(klass_name, loader, prot, thread) != NULL; |
622 return SystemDictionary::find(klass_name, loader, prot, thread) != NULL; |
623 } else { |
623 } else { |
624 return true; |
624 return true; |
625 } |
625 } |
626 } |
626 } |