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:
committed by
Bryce McKinlay
parent
f6326de601
commit
23bc3a894d
@@ -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 ()
|
||||
{
|
||||
|
||||
@@ -243,7 +243,6 @@ _Jv_GetFirstMethod (_Jv_InterpClass *klass)
|
||||
struct _Jv_ResolvedMethod
|
||||
{
|
||||
jint stack_item_count;
|
||||
jint vtable_index;
|
||||
jclass klass;
|
||||
_Jv_Method* method;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user