Mercurial > hg > truffle
diff 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 |
line wrap: on
line diff
--- a/src/share/vm/oops/instanceKlass.cpp Tue Dec 17 22:37:03 2013 +0100 +++ b/src/share/vm/oops/instanceKlass.cpp Wed Dec 18 00:00:24 2013 +0100 @@ -1051,6 +1051,18 @@ return false; } +bool InstanceKlass::is_same_or_direct_interface(Klass *k) const { + // Verify direct super interface + if (this == k) return true; + assert(k->is_interface(), "should be an interface class"); + for (int i = 0; i < local_interfaces()->length(); i++) { + if (local_interfaces()->at(i) == k) { + return true; + } + } + return false; +} + objArrayOop InstanceKlass::allocate_objArray(int n, int length, TRAPS) { if (length < 0) THROW_0(vmSymbols::java_lang_NegativeArraySizeException()); if (length > arrayOopDesc::max_array_length(T_OBJECT)) { @@ -1415,6 +1427,17 @@ return InstanceKlass::find_method(methods(), name, signature); } +// find_instance_method looks up the name/signature in the local methods array +// and skips over static methods +Method* InstanceKlass::find_instance_method( + Array<Method*>* methods, Symbol* name, Symbol* signature) { + Method* meth = InstanceKlass::find_method(methods, name, signature); + if (meth != NULL && meth->is_static()) { + meth = NULL; + } + return meth; +} + // find_method looks up the name/signature in the local methods array Method* InstanceKlass::find_method( Array<Method*>* methods, Symbol* name, Symbol* signature) { @@ -2157,7 +2180,6 @@ obj, \ MarkSweep::adjust_pointer(p), \ assert_is_in) - MarkSweep::adjust_klass(obj->klass()); return size; } @@ -2177,7 +2199,6 @@ obj, \ PSParallelCompact::adjust_pointer(p), \ assert_is_in) - obj->update_header(cm); return size; }