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;