summaryrefslogtreecommitdiffstats
path: root/libjava/resolve.cc
diff options
context:
space:
mode:
authortromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>2003-01-24 19:58:21 +0000
committertromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>2003-01-24 19:58:21 +0000
commit82733f8decd8b228c8152ae27fd102701250c456 (patch)
treef37c4a601e54ff85516e178f32e45db587bf62ce /libjava/resolve.cc
parent1c681b131ccb08de78b30381f9e9bd38c144dbfa (diff)
downloadppe42-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.cc8
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 ()
{
OpenPOWER on IntegriCloud