diff options
author | bryce <bryce@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-04-29 01:35:50 +0000 |
---|---|---|
committer | bryce <bryce@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-04-29 01:35:50 +0000 |
commit | 763b66b3c80da8970b622023a523b3fb68b4b418 (patch) | |
tree | 190c70f4d67cff0f7db66783ec89f4f81229bbdb /libjava/link.cc | |
parent | f644e0f4d5b0d7e1c84bbb2e01de75a1145d6d2c (diff) | |
download | gcc-763b66b3c80da8970b622023a523b3fb68b4b418.tar.gz |
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@113370 138bc75d-0d04-0410-961f-82ee72b054a4
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; |