summaryrefslogtreecommitdiff
path: root/libjava/link.cc
diff options
context:
space:
mode:
authorbryce <bryce@138bc75d-0d04-0410-961f-82ee72b054a4>2006-04-29 01:35:50 +0000
committerbryce <bryce@138bc75d-0d04-0410-961f-82ee72b054a4>2006-04-29 01:35:50 +0000
commit763b66b3c80da8970b622023a523b3fb68b4b418 (patch)
tree190c70f4d67cff0f7db66783ec89f4f81229bbdb /libjava/link.cc
parentf644e0f4d5b0d7e1c84bbb2e01de75a1145d6d2c (diff)
downloadgcc-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.cc7
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;