Object.h (throwNoSuchMethodError): New method.

2005-12-08  Andrew Haley  <aph@redhat.com>

        * java/lang/Object.h (throwNoSuchMethodError): New method.
        * java/lang/Object.java (throwNoSuchMethodError): New method.
        * include/jvm.h (_Jv_ThrowNoSuchFieldError): Declare.
        * link.cc (_Jv_ThrowNoSuchFieldError): New.
        (link_symbol_table): Don't throw a NoSuchFieldError if a field is
        missing.  Instead, set the otable entry to zero.
        (link_symbol_table): If we don't find a nonstatic method, insert
        the vtable offset of Object.throwNoSuchMethodError() into the
        otable.

From-SVN: r108231
This commit is contained in:
Andrew Haley 2005-12-08 14:19:13 +00:00 committed by Andrew Haley
parent e00388458d
commit 9edd0f5e69
5 changed files with 85 additions and 18 deletions

View file

@ -506,6 +506,14 @@ public class Object
// completeness (some day we'll be able to auto-generate Object.h).
private final native void sync_init();
// If we fail to find a method at class loading time we put the
// vtable index of this method in its place: any attempt to call
// that method will result in an error.
void throwNoSuchMethodError()
{
throw new NoSuchMethodError("in " + getClass());
}
// Note that we don't mention the sync_info field here. If we do,
// jc1 will not work correctly.
}