mirror of
https://github.com/gcc-mirror/gcc.git
synced 2026-05-06 23:25:24 +02:00
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:
committed by
Andrew Haley
parent
e00388458d
commit
9edd0f5e69
@@ -83,6 +83,9 @@ private:
|
||||
|
||||
// Initialize the sync_info field. Not called with JV_HASH_SYNCHRONIZATION.
|
||||
void sync_init (void);
|
||||
|
||||
public:
|
||||
virtual void throwNoSuchMethodError (void);
|
||||
};
|
||||
|
||||
#endif /* __JAVA_LANG_OBJECT_H__ */
|
||||
|
||||
@@ -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.
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user