summaryrefslogtreecommitdiffstats
path: root/libjava/resolve.cc
diff options
context:
space:
mode:
authortromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>2002-09-25 21:02:32 +0000
committertromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>2002-09-25 21:02:32 +0000
commit733eb1b7ee82d937ec864d0efd500bb496cd7c0c (patch)
treec64d6359e2056eac9f442892ab9193a1452fcc1e /libjava/resolve.cc
parent31c8980314b50044a5bfb3aaed06d9541a951ace (diff)
downloadppe42-gcc-733eb1b7ee82d937ec864d0efd500bb496cd7c0c.tar.gz
ppe42-gcc-733eb1b7ee82d937ec864d0efd500bb496cd7c0c.zip
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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@57517 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/resolve.cc')
-rw-r--r--libjava/resolve.cc20
1 files changed, 10 insertions, 10 deletions
diff --git a/libjava/resolve.cc b/libjava/resolve.cc
index af1f7c60c1a..f3b98a7a348 100644
--- a/libjava/resolve.cc
+++ b/libjava/resolve.cc
@@ -303,16 +303,6 @@ _Jv_ResolvePoolEntry (jclass klass, int index)
// 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();
@@ -324,6 +314,16 @@ _Jv_ResolvePoolEntry (jclass klass, int index)
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,
OpenPOWER on IntegriCloud