You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by mf...@apache.org on 2007/07/30 16:46:28 UTC
svn commit: r560999 -
/harmony/enhanced/drlvm/trunk/vm/vmcore/src/jit/jit_runtime_support.cpp
Author: mfursov
Date: Mon Jul 30 07:46:27 2007
New Revision: 560999
URL: http://svn.apache.org/viewvc?view=rev&rev=560999
Log:
Fix for HARMONY-4543
Modified:
harmony/enhanced/drlvm/trunk/vm/vmcore/src/jit/jit_runtime_support.cpp
Modified: harmony/enhanced/drlvm/trunk/vm/vmcore/src/jit/jit_runtime_support.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/vmcore/src/jit/jit_runtime_support.cpp?view=diff&rev=560999&r1=560998&r2=560999
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/vmcore/src/jit/jit_runtime_support.cpp (original)
+++ harmony/enhanced/drlvm/trunk/vm/vmcore/src/jit/jit_runtime_support.cpp Mon Jul 30 07:46:27 2007
@@ -2190,6 +2190,17 @@
exn_throw_by_name("java/lang/AbstractMethodError", msg);
return NULL; // not reachable
}
+ if(infc_method->is_protected() || infc_method->is_private()) {
+ // objClass overrides interface method as protected or private
+ char* msg = (char*)STD_ALLOCA(objClass->get_name()->len + 1
+ + m->get_name()->len + m->get_descriptor()->len + 1);
+ strcpy(msg, objClass->get_name()->bytes);
+ strcat(msg, ".");
+ strcat(msg, m->get_name()->bytes);
+ strcat(msg, m->get_descriptor()->bytes);
+ exn_throw_by_name("java/lang/IllegalAccessError", msg);
+ return NULL; // not reachable
+ }
assert(infc_method->get_class()->is_initialized() || objClass->is_initializing());
return infc_method->get_indirect_address();
}