diff options
author | tromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-01-24 19:58:21 +0000 |
---|---|---|
committer | tromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-01-24 19:58:21 +0000 |
commit | 82733f8decd8b228c8152ae27fd102701250c456 (patch) | |
tree | f37c4a601e54ff85516e178f32e45db587bf62ce /libjava/resolve.cc | |
parent | 1c681b131ccb08de78b30381f9e9bd38c144dbfa (diff) | |
download | ppe42-gcc-82733f8decd8b228c8152ae27fd102701250c456.tar.gz ppe42-gcc-82733f8decd8b228c8152ae27fd102701250c456.zip |
* defineclass.cc (handleMethodsEnd): Precompute code for static
method.
(handleCodeAttribute): Likewise.
* resolve.cc (ncode): Use run_class for unsynchronized static
methods.
* include/java-interp.h (class _Jv_InterpMethod): Declare
run_class.
* interpret.cc (run_synch_class): Initialize class.
(run) [insn_invokestatic]: Don't initialize class.
[insn_anewarray]: Likewise.
[insn_multianewarray]: Likewise.
(run_class): New function.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@61727 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/resolve.cc')
-rw-r--r-- | libjava/resolve.cc | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/libjava/resolve.cc b/libjava/resolve.cc index 00785eed8fc..e69341e385f 100644 --- a/libjava/resolve.cc +++ b/libjava/resolve.cc @@ -1,6 +1,6 @@ // resolve.cc - Code for linking and resolving classes and pool entries. -/* Copyright (C) 1999, 2000, 2001 , 2002 Free Software Foundation +/* Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation This file is part of libgcj. @@ -947,7 +947,10 @@ _Jv_InterpMethod::ncode () } else { - fun = (ffi_closure_fun)&_Jv_InterpMethod::run_normal; + if (staticp) + fun = (ffi_closure_fun)&_Jv_InterpMethod::run_class; + else + fun = (ffi_closure_fun)&_Jv_InterpMethod::run_normal; } FFI_PREP_RAW_CLOSURE (&closure->closure, @@ -959,7 +962,6 @@ _Jv_InterpMethod::ncode () return self->ncode; } - void * _Jv_JNIMethod::ncode () { |