Mercurial > hg > graal-compiler
comparison src/share/vm/oops/method.cpp @ 6988:2cb439954abf
Merge with http://hg.openjdk.java.net/hsx/hsx25/hotspot/
author | Gilles Duboscq <duboscq@ssw.jku.at> |
---|---|
date | Mon, 19 Nov 2012 15:36:13 +0100 |
parents | 41938af2b3d8 070d523b96a7 |
children | 679e6584c177 |
comparison
equal
deleted
inserted
replaced
6963:dd0dd0321e2a | 6988:2cb439954abf |
---|---|
153 assert(_adapter != NULL, "must have"); | 153 assert(_adapter != NULL, "must have"); |
154 return _adapter->get_c2i_unverified_entry(); | 154 return _adapter->get_c2i_unverified_entry(); |
155 } | 155 } |
156 | 156 |
157 char* Method::name_and_sig_as_C_string() const { | 157 char* Method::name_and_sig_as_C_string() const { |
158 return name_and_sig_as_C_string(Klass::cast(constants()->pool_holder()), name(), signature()); | 158 return name_and_sig_as_C_string(constants()->pool_holder(), name(), signature()); |
159 } | 159 } |
160 | 160 |
161 char* Method::name_and_sig_as_C_string(char* buf, int size) const { | 161 char* Method::name_and_sig_as_C_string(char* buf, int size) const { |
162 return name_and_sig_as_C_string(Klass::cast(constants()->pool_holder()), name(), signature(), buf, size); | 162 return name_and_sig_as_C_string(constants()->pool_holder(), name(), signature(), buf, size); |
163 } | 163 } |
164 | 164 |
165 char* Method::name_and_sig_as_C_string(Klass* klass, Symbol* method_name, Symbol* signature) { | 165 char* Method::name_and_sig_as_C_string(Klass* klass, Symbol* method_name, Symbol* signature) { |
166 const char* klass_name = klass->external_name(); | 166 const char* klass_name = klass->external_name(); |
167 int klass_name_len = (int)strlen(klass_name); | 167 int klass_name_len = (int)strlen(klass_name); |
579 objArrayOop m_oop = oopFactory::new_objArray(SystemDictionary::Class_klass(), length, CHECK_(objArrayHandle())); | 579 objArrayOop m_oop = oopFactory::new_objArray(SystemDictionary::Class_klass(), length, CHECK_(objArrayHandle())); |
580 objArrayHandle mirrors (THREAD, m_oop); | 580 objArrayHandle mirrors (THREAD, m_oop); |
581 for (int i = 0; i < length; i++) { | 581 for (int i = 0; i < length; i++) { |
582 CheckedExceptionElement* table = h_this->checked_exceptions_start(); // recompute on each iteration, not gc safe | 582 CheckedExceptionElement* table = h_this->checked_exceptions_start(); // recompute on each iteration, not gc safe |
583 Klass* k = h_this->constants()->klass_at(table[i].class_cp_index, CHECK_(objArrayHandle())); | 583 Klass* k = h_this->constants()->klass_at(table[i].class_cp_index, CHECK_(objArrayHandle())); |
584 assert(Klass::cast(k)->is_subclass_of(SystemDictionary::Throwable_klass()), "invalid exception class"); | 584 assert(k->is_subclass_of(SystemDictionary::Throwable_klass()), "invalid exception class"); |
585 mirrors->obj_at_put(i, Klass::cast(k)->java_mirror()); | 585 mirrors->obj_at_put(i, k->java_mirror()); |
586 } | 586 } |
587 return mirrors; | 587 return mirrors; |
588 } | 588 } |
589 }; | 589 }; |
590 | 590 |
619 bool Method::is_klass_loaded_by_klass_index(int klass_index) const { | 619 bool Method::is_klass_loaded_by_klass_index(int klass_index) const { |
620 if( constants()->tag_at(klass_index).is_unresolved_klass() ) { | 620 if( constants()->tag_at(klass_index).is_unresolved_klass() ) { |
621 Thread *thread = Thread::current(); | 621 Thread *thread = Thread::current(); |
622 Symbol* klass_name = constants()->klass_name_at(klass_index); | 622 Symbol* klass_name = constants()->klass_name_at(klass_index); |
623 Handle loader(thread, method_holder()->class_loader()); | 623 Handle loader(thread, method_holder()->class_loader()); |
624 Handle prot (thread, Klass::cast(method_holder())->protection_domain()); | 624 Handle prot (thread, method_holder()->protection_domain()); |
625 return SystemDictionary::find(klass_name, loader, prot, thread) != NULL; | 625 return SystemDictionary::find(klass_name, loader, prot, thread) != NULL; |
626 } else { | 626 } else { |
627 return true; | 627 return true; |
628 } | 628 } |
629 } | 629 } |
1068 | 1068 |
1069 return m; | 1069 return m; |
1070 } | 1070 } |
1071 | 1071 |
1072 Klass* Method::check_non_bcp_klass(Klass* klass) { | 1072 Klass* Method::check_non_bcp_klass(Klass* klass) { |
1073 if (klass != NULL && Klass::cast(klass)->class_loader() != NULL) { | 1073 if (klass != NULL && klass->class_loader() != NULL) { |
1074 if (Klass::cast(klass)->oop_is_objArray()) | 1074 if (klass->oop_is_objArray()) |
1075 klass = ObjArrayKlass::cast(klass)->bottom_klass(); | 1075 klass = ObjArrayKlass::cast(klass)->bottom_klass(); |
1076 return klass; | 1076 return klass; |
1077 } | 1077 } |
1078 return NULL; | 1078 return NULL; |
1079 } | 1079 } |