Mercurial > hg > truffle
comparison src/share/vm/oops/instanceKlass.cpp @ 13451:02f27ecb4f3a
Merge with http://hg.openjdk.java.net/hsx/hsx25/hotspot/
author | Doug Simon <doug.simon@oracle.com> |
---|---|
date | Wed, 18 Dec 2013 00:00:24 +0100 |
parents | 096c224171c4 ad72068ac41e |
children | b270b954ba9a |
comparison
equal
deleted
inserted
replaced
13371:4db09b7304da | 13451:02f27ecb4f3a |
---|---|
1049 } | 1049 } |
1050 } | 1050 } |
1051 return false; | 1051 return false; |
1052 } | 1052 } |
1053 | 1053 |
1054 bool InstanceKlass::is_same_or_direct_interface(Klass *k) const { | |
1055 // Verify direct super interface | |
1056 if (this == k) return true; | |
1057 assert(k->is_interface(), "should be an interface class"); | |
1058 for (int i = 0; i < local_interfaces()->length(); i++) { | |
1059 if (local_interfaces()->at(i) == k) { | |
1060 return true; | |
1061 } | |
1062 } | |
1063 return false; | |
1064 } | |
1065 | |
1054 objArrayOop InstanceKlass::allocate_objArray(int n, int length, TRAPS) { | 1066 objArrayOop InstanceKlass::allocate_objArray(int n, int length, TRAPS) { |
1055 if (length < 0) THROW_0(vmSymbols::java_lang_NegativeArraySizeException()); | 1067 if (length < 0) THROW_0(vmSymbols::java_lang_NegativeArraySizeException()); |
1056 if (length > arrayOopDesc::max_array_length(T_OBJECT)) { | 1068 if (length > arrayOopDesc::max_array_length(T_OBJECT)) { |
1057 report_java_out_of_memory("Requested array size exceeds VM limit"); | 1069 report_java_out_of_memory("Requested array size exceeds VM limit"); |
1058 JvmtiExport::post_array_size_exhausted(); | 1070 JvmtiExport::post_array_size_exhausted(); |
1411 } | 1423 } |
1412 | 1424 |
1413 // find_method looks up the name/signature in the local methods array | 1425 // find_method looks up the name/signature in the local methods array |
1414 Method* InstanceKlass::find_method(Symbol* name, Symbol* signature) const { | 1426 Method* InstanceKlass::find_method(Symbol* name, Symbol* signature) const { |
1415 return InstanceKlass::find_method(methods(), name, signature); | 1427 return InstanceKlass::find_method(methods(), name, signature); |
1428 } | |
1429 | |
1430 // find_instance_method looks up the name/signature in the local methods array | |
1431 // and skips over static methods | |
1432 Method* InstanceKlass::find_instance_method( | |
1433 Array<Method*>* methods, Symbol* name, Symbol* signature) { | |
1434 Method* meth = InstanceKlass::find_method(methods, name, signature); | |
1435 if (meth != NULL && meth->is_static()) { | |
1436 meth = NULL; | |
1437 } | |
1438 return meth; | |
1416 } | 1439 } |
1417 | 1440 |
1418 // find_method looks up the name/signature in the local methods array | 1441 // find_method looks up the name/signature in the local methods array |
1419 Method* InstanceKlass::find_method( | 1442 Method* InstanceKlass::find_method( |
1420 Array<Method*>* methods, Symbol* name, Symbol* signature) { | 1443 Array<Method*>* methods, Symbol* name, Symbol* signature) { |
2155 int size = size_helper(); | 2178 int size = size_helper(); |
2156 InstanceKlass_OOP_MAP_ITERATE( \ | 2179 InstanceKlass_OOP_MAP_ITERATE( \ |
2157 obj, \ | 2180 obj, \ |
2158 MarkSweep::adjust_pointer(p), \ | 2181 MarkSweep::adjust_pointer(p), \ |
2159 assert_is_in) | 2182 assert_is_in) |
2160 MarkSweep::adjust_klass(obj->klass()); | |
2161 return size; | 2183 return size; |
2162 } | 2184 } |
2163 | 2185 |
2164 #if INCLUDE_ALL_GCS | 2186 #if INCLUDE_ALL_GCS |
2165 void InstanceKlass::oop_push_contents(PSPromotionManager* pm, oop obj) { | 2187 void InstanceKlass::oop_push_contents(PSPromotionManager* pm, oop obj) { |
2175 int size = size_helper(); | 2197 int size = size_helper(); |
2176 InstanceKlass_OOP_MAP_ITERATE( \ | 2198 InstanceKlass_OOP_MAP_ITERATE( \ |
2177 obj, \ | 2199 obj, \ |
2178 PSParallelCompact::adjust_pointer(p), \ | 2200 PSParallelCompact::adjust_pointer(p), \ |
2179 assert_is_in) | 2201 assert_is_in) |
2180 obj->update_header(cm); | |
2181 return size; | 2202 return size; |
2182 } | 2203 } |
2183 | 2204 |
2184 #endif // INCLUDE_ALL_GCS | 2205 #endif // INCLUDE_ALL_GCS |
2185 | 2206 |