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
This commit is contained in:
Bryce McKinlay
2006-04-29 01:35:50 +00:00
committed by Bryce McKinlay
parent f6326de601
commit 23bc3a894d
5 changed files with 41 additions and 48 deletions
+3 -3
View File
@@ -26,7 +26,7 @@ struct _Jv_ExecutionEngine
void (*allocate_static_fields) (jclass, int, int);
void (*create_ncode) (jclass);
_Jv_ResolvedMethod *(*resolve_method) (_Jv_Method *, jclass,
jboolean, jint);
jboolean);
void (*post_miranda_hook) (jclass);
};
@@ -50,7 +50,7 @@ struct _Jv_CompiledEngine : public _Jv_ExecutionEngine
}
static _Jv_ResolvedMethod *do_resolve_method (_Jv_Method *, jclass,
jboolean, jint)
jboolean)
{
return NULL;
}
@@ -118,7 +118,7 @@ class _Jv_InterpreterEngine : public _Jv_ExecutionEngine
static void do_allocate_static_fields (jclass, int, int);
static void do_create_ncode (jclass);
static _Jv_ResolvedMethod *do_resolve_method (_Jv_Method *, jclass,
jboolean, jint);
jboolean);
static bool do_need_resolve_string_fields ()
{
-1
View File
@@ -243,7 +243,6 @@ _Jv_GetFirstMethod (_Jv_InterpClass *klass)
struct _Jv_ResolvedMethod
{
jint stack_item_count;
jint vtable_index;
jclass klass;
_Jv_Method* method;