+2002-09-25 Jesse Rosenstock <jmr@ugcs.caltech.edu>
+
+ * resolve.cc (_Jv_ResolvePoolEntry) [end_of_method_search]: Check
+ to see if `the_method == 0' before looking up vtable index.
+ Fixes PR libgcj/7709.
+
2002-09-25 Tom Tromey <tromey@redhat.com>
* java/lang/natClassLoader.cc:
* resolve.cc: Include NoClassDefFoundError.h, not
ClassNotFoundException.h.
(_Jv_ResolvePoolEntry): Throw NoClassDefFoundError, per spec.
+
* defineclass.cc: Don't include ClassNotFoundException.h.
* resolve.cc: Include StringBuffer.
// with either loader should produce the same result,
// i.e., exactly the same jclass object. JVMS 5.4.3.3
- if (pool->tags[index] == JV_CONSTANT_InterfaceMethodref)
- vtable_index = -1;
- else
- vtable_index = _Jv_DetermineVTableIndex
- (found_class, method_name, method_signature);
-
- if (vtable_index == METHOD_NOT_THERE)
- throw_incompatible_class_change_error
- (JvNewStringLatin1 ("method not found"));
-
if (the_method == 0)
{
java::lang::StringBuffer *sb = new java::lang::StringBuffer();
throw new java::lang::NoSuchMethodError (sb->toString());
}
+ if (pool->tags[index] == JV_CONSTANT_InterfaceMethodref)
+ vtable_index = -1;
+ else
+ vtable_index = _Jv_DetermineVTableIndex (found_class, method_name,
+ method_signature);
+
+ if (vtable_index == METHOD_NOT_THERE)
+ throw_incompatible_class_change_error
+ (JvNewStringLatin1 ("method not found"));
+
pool->data[index].rmethod =
_Jv_BuildResolvedMethod(the_method,
found_class,