diff options
author | Bryce McKinlay <mckinlay@redhat.com> | 2006-04-29 01:35:50 +0000 |
---|---|---|
committer | Bryce McKinlay <bryce@gcc.gnu.org> | 2006-04-29 02:35:50 +0100 |
commit | 23bc3a894d2e6e62f47e853c02388787142c633b (patch) | |
tree | 190c70f4d67cff0f7db66783ec89f4f81229bbdb /libjava/link.cc | |
parent | f6326de601ea98a438f0f053ecc5b8cb78364254 (diff) | |
download | gcc-23bc3a894d2e6e62f47e853c02388787142c633b.tar.gz |
link.cc (_Jv_Linker::resolve_pool_entry): Don't pass vtable_index to resolve_method.
2006-04-28 Bryce McKinlay <mckinlay@redhat.com>
* link.cc (_Jv_Linker::resolve_pool_entry): Don't pass vtable_index
to resolve_method.
* interpret.cc (insn_invokevirtual): Use method->index, not
vtable_index. Check accflag FINAL to determine finals. Only do
explicit null check if calling a final method. Use
throw_null_pointer_exception.
(invokevirtual_resolved): Likewise.
(null_pointer_exc): Remove static field.
(throw_null_pointer_exception): Always define. Throw a new
NullPointerException every time.
* include/java-interp.h (_Jv_ResolvedMethod): Remove vtable_index
field.
* include/execution.h (resolve_method): Remove vtable_index argument.
From-SVN: r113370
Diffstat (limited to 'libjava/link.cc')
-rw-r--r-- | libjava/link.cc | 7 |
1 files changed, 1 insertions, 6 deletions
diff --git a/libjava/link.cc b/libjava/link.cc index e107316d047..c65b0c97ff1 100644 --- a/libjava/link.cc +++ b/libjava/link.cc @@ -496,16 +496,11 @@ _Jv_Linker::resolve_pool_entry (jclass klass, int index, bool lazy) throw new java::lang::NoSuchMethodError (sb->toString()); } - int vtable_index = -1; - if (pool->tags[index] != JV_CONSTANT_InterfaceMethodref) - vtable_index = (jshort)the_method->index; - pool->data[index].rmethod = klass->engine->resolve_method(the_method, found_class, ((the_method->accflags - & Modifier::STATIC) != 0), - vtable_index); + & Modifier::STATIC) != 0)); pool->tags[index] |= JV_CONSTANT_ResolvedFlag; } break; |