You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by gs...@apache.org on 2007/08/09 08:39:49 UTC
svn commit: r564111 -
/harmony/enhanced/drlvm/trunk/vm/vmcore/src/class_support/Class.cpp
Author: gshimansky
Date: Wed Aug 8 23:39:49 2007
New Revision: 564111
URL: http://svn.apache.org/viewvc?view=rev&rev=564111
Log:
Applied patch from HARMONY-4355
[drlvm][classloader] compatibility: VM throws NoClassDefFoundError when the implementation of some abstract method is absent while RI throws AbstractMethodError
Modified:
harmony/enhanced/drlvm/trunk/vm/vmcore/src/class_support/Class.cpp
Modified: harmony/enhanced/drlvm/trunk/vm/vmcore/src/class_support/Class.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/vmcore/src/class_support/Class.cpp?view=diff&rev=564111&r1=564110&r2=564111
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/vmcore/src/class_support/Class.cpp (original)
+++ harmony/enhanced/drlvm/trunk/vm/vmcore/src/class_support/Class.cpp Wed Aug 8 23:39:49 2007
@@ -537,8 +537,11 @@
assert(clss);
Method *m = 0;
Class *oclss = clss;
- for(; clss && !m; clss = clss->get_super_class()) {
- m = clss->lookup_method(name, desc);
+ m = clss->lookup_method(name, desc);
+ if(m)return m;
+
+ for(clss = clss->get_super_class(); clss && !m; clss = clss->get_super_class()) {
+ m = class_lookup_method_recursive(clss, name, desc);
}
if(m)return m;