diff options
author | tromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4> | 2002-09-25 21:02:32 +0000 |
---|---|---|
committer | tromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4> | 2002-09-25 21:02:32 +0000 |
commit | 733eb1b7ee82d937ec864d0efd500bb496cd7c0c (patch) | |
tree | c64d6359e2056eac9f442892ab9193a1452fcc1e /libjava/resolve.cc | |
parent | 31c8980314b50044a5bfb3aaed06d9541a951ace (diff) | |
download | ppe42-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.cc | 20 |
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, |