From c0cbd601303809da24e1ea49b711193cba4815be Mon Sep 17 00:00:00 2001 From: Bryce McKinlay Date: Fri, 11 Mar 2005 04:30:20 +0000 Subject: [PATCH] exception.cc: Remove stray MethodRef.h include. 2005-03-10 Bryce McKinlay * exception.cc: Remove stray MethodRef.h include. * java/lang/natClass.cc: Likewise. * gnu/gcj/runtime/MethodRef.java: Removed. * gnu/gcj/runtime/StackTrace.java, gnu/gcj/runtime/natNameFinder.cc, gnu/gcj/runtime/natStackTrace.cc: Really removed. * java/lang/natRuntime.cc (_load): Remove unsed variable. * Makefile.am (ordinary_java_source_files): Remove MethodRef.java. * Makefile.in: Rebuilt. From-SVN: r96288 --- libjava/ChangeLog | 13 +- libjava/Makefile.am | 1 - libjava/Makefile.in | 11 +- libjava/exception.cc | 1 - libjava/gnu/gcj/runtime/MethodRef.java | 25 --- libjava/gnu/gcj/runtime/StackTrace.java | 167 ---------------- libjava/gnu/gcj/runtime/natNameFinder.cc | 157 --------------- libjava/gnu/gcj/runtime/natStackTrace.cc | 241 ----------------------- libjava/java/lang/natClass.cc | 1 - libjava/java/lang/natRuntime.cc | 1 - 10 files changed, 14 insertions(+), 604 deletions(-) delete mode 100644 libjava/gnu/gcj/runtime/MethodRef.java delete mode 100644 libjava/gnu/gcj/runtime/StackTrace.java delete mode 100644 libjava/gnu/gcj/runtime/natNameFinder.cc delete mode 100644 libjava/gnu/gcj/runtime/natStackTrace.cc diff --git a/libjava/ChangeLog b/libjava/ChangeLog index 461211119a2..76c7a43ce2a 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,14 @@ +2005-03-10 Bryce McKinlay + + * exception.cc: Remove stray MethodRef.h include. + * java/lang/natClass.cc: Likewise. + * gnu/gcj/runtime/MethodRef.java: Removed. + * gnu/gcj/runtime/StackTrace.java, gnu/gcj/runtime/natNameFinder.cc, + gnu/gcj/runtime/natStackTrace.cc: Really removed. + * java/lang/natRuntime.cc (_load): Remove unsed variable. + * Makefile.am (ordinary_java_source_files): Remove MethodRef.java. + * Makefile.in: Rebuilt. + 2005-03-10 Tom Tromey * Makefile.in: Rebuilt. @@ -12,7 +23,7 @@ New Stack Trace infrastructure. * Makefile.am (libgcj0_convenience_la_SOURCES): Add stacktrace.cc. - (gnu/gcj/runtime/StackTrace.lo): Removed. + (gnu/gcj/runtime/StackTrace.java): Removed. (ordinary_java_source_files): Remove obsolete files. (nat_source_files): Remove obsolete files. Add natVMThrowable.cc. * configure.host (fallback_backtrace_h): Set backtrace header diff --git a/libjava/Makefile.am b/libjava/Makefile.am index 811c3263bef..920b05bd9af 100644 --- a/libjava/Makefile.am +++ b/libjava/Makefile.am @@ -2903,7 +2903,6 @@ gnu/gcj/io/SimpleSHSStream.java \ gnu/gcj/runtime/FileDeleter.java \ gnu/gcj/runtime/FinalizerThread.java \ gnu/gcj/runtime/JNIWeakRef.java \ -gnu/gcj/runtime/MethodRef.java \ gnu/gcj/runtime/NameFinder.java \ gnu/gcj/runtime/PersistentByteMap.java \ gnu/gcj/runtime/SharedLibHelper.java \ diff --git a/libjava/Makefile.in b/libjava/Makefile.in index 85970dbc131..4be41130c88 100644 --- a/libjava/Makefile.in +++ b/libjava/Makefile.in @@ -554,7 +554,7 @@ am__libgcj0_convenience_la_SOURCES_DIST = prims.cc jni.cc exception.cc \ gnu/gcj/io/MimeTypes.java gnu/gcj/io/SimpleSHSStream.java \ gnu/gcj/runtime/FileDeleter.java \ gnu/gcj/runtime/FinalizerThread.java \ - gnu/gcj/runtime/JNIWeakRef.java gnu/gcj/runtime/MethodRef.java \ + gnu/gcj/runtime/JNIWeakRef.java \ gnu/gcj/runtime/NameFinder.java \ gnu/gcj/runtime/PersistentByteMap.java \ gnu/gcj/runtime/SharedLibHelper.java \ @@ -3992,8 +3992,7 @@ am__objects_15 = $(am__objects_9) gnu/classpath/ServiceFactory.lo \ gnu/gcj/io/DefaultMimeTypes.lo gnu/gcj/io/MimeTypes.lo \ gnu/gcj/io/SimpleSHSStream.lo gnu/gcj/runtime/FileDeleter.lo \ gnu/gcj/runtime/FinalizerThread.lo \ - gnu/gcj/runtime/JNIWeakRef.lo gnu/gcj/runtime/MethodRef.lo \ - gnu/gcj/runtime/NameFinder.lo \ + gnu/gcj/runtime/JNIWeakRef.lo gnu/gcj/runtime/NameFinder.lo \ gnu/gcj/runtime/PersistentByteMap.lo \ gnu/gcj/runtime/SharedLibHelper.lo \ gnu/gcj/runtime/SharedLibLoader.lo \ @@ -7302,7 +7301,6 @@ gnu/gcj/io/SimpleSHSStream.java \ gnu/gcj/runtime/FileDeleter.java \ gnu/gcj/runtime/FinalizerThread.java \ gnu/gcj/runtime/JNIWeakRef.java \ -gnu/gcj/runtime/MethodRef.java \ gnu/gcj/runtime/NameFinder.java \ gnu/gcj/runtime/PersistentByteMap.java \ gnu/gcj/runtime/SharedLibHelper.java \ @@ -9604,8 +9602,6 @@ gnu/gcj/runtime/FinalizerThread.lo: gnu/gcj/runtime/$(am__dirstamp) \ gnu/gcj/runtime/$(DEPDIR)/$(am__dirstamp) gnu/gcj/runtime/JNIWeakRef.lo: gnu/gcj/runtime/$(am__dirstamp) \ gnu/gcj/runtime/$(DEPDIR)/$(am__dirstamp) -gnu/gcj/runtime/MethodRef.lo: gnu/gcj/runtime/$(am__dirstamp) \ - gnu/gcj/runtime/$(DEPDIR)/$(am__dirstamp) gnu/gcj/runtime/NameFinder.lo: gnu/gcj/runtime/$(am__dirstamp) \ gnu/gcj/runtime/$(DEPDIR)/$(am__dirstamp) gnu/gcj/runtime/PersistentByteMap.lo: gnu/gcj/runtime/$(am__dirstamp) \ @@ -16353,8 +16349,6 @@ mostlyclean-compile: -rm -f gnu/gcj/runtime/FinalizerThread.lo -rm -f gnu/gcj/runtime/JNIWeakRef.$(OBJEXT) -rm -f gnu/gcj/runtime/JNIWeakRef.lo - -rm -f gnu/gcj/runtime/MethodRef.$(OBJEXT) - -rm -f gnu/gcj/runtime/MethodRef.lo -rm -f gnu/gcj/runtime/NameFinder.$(OBJEXT) -rm -f gnu/gcj/runtime/NameFinder.lo -rm -f gnu/gcj/runtime/PersistentByteMap.$(OBJEXT) @@ -21979,7 +21973,6 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@gnu/gcj/runtime/$(DEPDIR)/FileDeleter.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@gnu/gcj/runtime/$(DEPDIR)/FinalizerThread.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@gnu/gcj/runtime/$(DEPDIR)/JNIWeakRef.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@gnu/gcj/runtime/$(DEPDIR)/MethodRef.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@gnu/gcj/runtime/$(DEPDIR)/NameFinder.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@gnu/gcj/runtime/$(DEPDIR)/PersistentByteMap.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@gnu/gcj/runtime/$(DEPDIR)/SharedLibHelper.Plo@am__quote@ diff --git a/libjava/exception.cc b/libjava/exception.cc index ef7292c3bf7..367df3618b9 100644 --- a/libjava/exception.cc +++ b/libjava/exception.cc @@ -15,7 +15,6 @@ details. */ #include #include -#include #include #include #include diff --git a/libjava/gnu/gcj/runtime/MethodRef.java b/libjava/gnu/gcj/runtime/MethodRef.java deleted file mode 100644 index f15746164a6..00000000000 --- a/libjava/gnu/gcj/runtime/MethodRef.java +++ /dev/null @@ -1,25 +0,0 @@ -// gnu.gcj.runtime.MethodRef -- used by StackTrace. - -/* Copyright (C) 2002 Free Software Foundation - - This file is part of libgcj. - -This software is copyrighted work licensed under the terms of the -Libgcj License. Please consult the file "LIBGCJ_LICENSE" for -details. */ - -package gnu.gcj.runtime; - -import gnu.gcj.RawData; - -class MethodRef -{ - MethodRef(RawData /* Actually _Jv_Method */ m, Class k) - { - klass = k; - method = m; - } - - public RawData method; // Actually a raw pointer to _Jv_Method - public Class klass; -} diff --git a/libjava/gnu/gcj/runtime/StackTrace.java b/libjava/gnu/gcj/runtime/StackTrace.java deleted file mode 100644 index c9f5a1a26e8..00000000000 --- a/libjava/gnu/gcj/runtime/StackTrace.java +++ /dev/null @@ -1,167 +0,0 @@ -/* gnu.gcj.runtime.StackTrace -- VM support methods for walking the - stack. - Copyright (C) 1998, 1999, 2002 Free Software Foundation, Inc. - -This file is part of GNU Classpath. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -02111-1307 USA. - -Linking this library statically or dynamically with other modules is -making a combined work based on this library. Thus, the terms and -conditions of the GNU General Public License cover the whole -combination. - -As a special exception, the copyright holders of this library give you -permission to link this library with independent modules to produce an -executable, regardless of the license terms of these independent -modules, and to copy and distribute the resulting executable under -terms of your choice, provided that you also meet, for each linked -independent module, the terms and conditions of the license of that -module. An independent module is a module which is not derived from -or based on this library. If you modify this library, you may extend -this exception to your version of the library, but you are not -obligated to do so. If you do not wish to do so, delete this -exception statement from your version. */ - -package gnu.gcj.runtime; - -import gnu.gcj.RawData; -import java.util.TreeMap; -import java.util.IdentityHashMap; -import java.util.SortedMap; -import gnu.gcj.runtime.NameFinder; -import java.util.NoSuchElementException; - -/** - * VM dependent state and support methods for walking the stack. - *

- * This is the version used by libgcj (http://gcc.gnu.org/java/). - * - * @author Mark Wielaard (mark@klomp.org) - * @author Andrew Haley (aph@redhat.com) - */ -public final class StackTrace -{ - /** - * Fill in the stack trace with the top n frames on current - * execution stack. Can return null if the VM does not support - * capturing the VM execution state. - * - * @see Throwable#fillInStackTrace() - */ - public StackTrace(int n) - { - fillInStackTrace(n, 1); - } - - /** - * Fill in the stack trace with state of the entire execution stack, - * starting from frame offset. Can return null if the - * VM does not support capturing the VM execution state. - * - * This can be very expensive. If you only want part of the stack, - * see Throwable.fillInStackTrace(int) - * - * @see Throwable#fillInStackTrace() - */ - public StackTrace() - { - int n = 64; - - do - { - n *= 4; - fillInStackTrace(n, 1); - } - while (len >= n); - } - - /** - * Return the class containing the execution point represented by - * the Nth frame down the stack. The zeroth frame represents the - * top of the stack, which is the method that called classAt(). - * - * If the Nth frame down the stack was not create by a method - * invocation, return null. - * - * It is not necessary to call fillInStackTrace() with - * a size greater than N before calling this method; if the current - * stack trace is insufficiently large, it will be expanded as - * required. This requires some caution if - * fillInStackTrace() is called from a different - * invocation to the one that calls classAt(). - * classAt() will not call fillInStackTrace() unless N - * is greater than the current length. - * - */ - public native Class classAt(int n); - - /** - * Return the name of the method containing the execution point - * represented by the Nth frame down the stack. The zeroth frame - * represents the top of the stack, which is the method that called - * classAt(). - * - * If the Nth frame down the stack was not create by a method - * invocation, return null. - * - * It is not necessary to call fillInStackTrace() with - * a size greater than N before calling this method; if the current - * stack trace is insufficiently large, it will be expanded as - * required. This requires some caution if - * fillInStackTrace() is called from a different - * invocation to the one that calls classAt(). - * classAt() will not call fillInStackTrace() unless N - * is greater than the current length. - * - */ - public native String methodAt(int n); - - /** - * Return the length of this stack trace. - * - */ - public int length () - { - return len; - } - - public static native Class getClass(RawData ip); - - private static native void update(); - private static MethodRef methodAtAddress(RawData addr) - { - update(); - synchronized (map) - { - return (MethodRef) map.get (addr); - } - } - - gnu.gcj.RawData stackTraceAddrs() - { - return addrs; - } - - private native void fillInStackTrace(int n, int offset); - protected native void finalize(); - - private static native MethodRef getCompiledMethodRef(RawData addr); - private static IdentityHashMap map = new IdentityHashMap(); - - private gnu.gcj.RawData addrs; - private int len; -} diff --git a/libjava/gnu/gcj/runtime/natNameFinder.cc b/libjava/gnu/gcj/runtime/natNameFinder.cc deleted file mode 100644 index d688884ca36..00000000000 --- a/libjava/gnu/gcj/runtime/natNameFinder.cc +++ /dev/null @@ -1,157 +0,0 @@ -// natNameFinder.cc - native helper methods for NameFinder.java - -/* Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc - - This file is part of libgcj. - -This software is copyrighted work licensed under the terms of the -Libgcj License. Please consult the file "LIBGCJ_LICENSE" for -details. */ - -/** - * @author Mark Wielaard (mark@klomp.org) - * Based on the old name-finder.cc by Andrew Haley . - */ - -#include - -#include - -#include -#include -#include -#include -#include -#include - -#include - -#ifdef HAVE_DLFCN_H -#include -#endif - -// On some systems, a prefix is attached to a method name before -// it is exported as a label. The GCC preprocessor predefines -// this prefix as the macro __USER_LABEL_PREFIX__ which expands to -// a string (not string constant) representing the prefix, if any. -#undef LABEL_PREFIX -#ifdef __USER_LABEL_PREFIX__ - -#define USER_LABEL_PREFIX_STRING_0(s) #s -#define USER_LABEL_PREFIX_STRING(s) USER_LABEL_PREFIX_STRING_0(s) - -#define LABEL_PREFIX USER_LABEL_PREFIX_STRING(__USER_LABEL_PREFIX__) - -#else /* __USER_LABEL_PREFIX__ */ - -#define LABEL_PREFIX "" - -#endif /* ! __USER_LABEL_PREFIX__ */ - -java::lang::StackTraceElement* -gnu::gcj::runtime::NameFinder::newElement (java::lang::String* fileName, - jint lineNumber, - java::lang::String* className, - java::lang::String* methName, - jboolean isNative) -{ - return new java::lang::StackTraceElement( fileName, lineNumber, - className, methName, isNative); -} - -java::lang::String* -gnu::gcj::runtime::NameFinder::getExternalLabel (java::lang::String* name) -{ - jsize nameLen = JvGetStringUTFLength (name); - jsize pfxLen = strlen (LABEL_PREFIX); - char *newName = (char *) JvMalloc (pfxLen + nameLen + 1); - *(newName + 0) = '\0'; - strcpy (newName, LABEL_PREFIX); - JvGetStringUTFRegion (name, 0, name->length(), newName + pfxLen); - *(newName + pfxLen + nameLen) = '\0'; - return JvNewStringLatin1 (newName); -} - -java::lang::String* -gnu::gcj::runtime::NameFinder::getExecutable (void) -{ - return JvNewStringLatin1 (_Jv_ThisExecutable ()); -} - -java::lang::String* -gnu::gcj::runtime::NameFinder::getAddrAsString(RawData* addrs, jint n) -{ - _Jv_frame_info *p = (_Jv_frame_info *) addrs; - typedef unsigned word_t __attribute ((mode (word))); - word_t w = (word_t) p[n].addr; - int digits = sizeof (void *) * 2; - char hex[digits+5]; - - strcpy (hex, "0x"); - for (int i = digits - 1; i >= 0; i--) - { - int digit = w % 16; - - w /= 16; - hex[i+2] = digit > 9 ? 'a' + digit - 10 : '0' + digit; - } - hex [digits+2] = 0; - - return JvNewStringLatin1(hex); -} - -java::lang::StackTraceElement* -gnu::gcj::runtime::NameFinder::dladdrLookup(RawData* addrs, jint n) -{ -#if defined (HAVE_DLFCN_H) && defined (HAVE_DLADDR) - extern char **_Jv_argv; - char name[1024]; - char file_name[1024]; - _Jv_frame_info *stack = (_Jv_frame_info *) addrs; - void* p = stack[n].addr; - Dl_info dl_info; - - if (dladdr (p, &dl_info)) - { - if (dl_info.dli_fname) - strncpy (file_name, dl_info.dli_fname, sizeof file_name); - if (dl_info.dli_sname) - strncpy (name, dl_info.dli_sname, sizeof name); - - /* Don't trust dladdr() if the address is from the main program. */ - if (dl_info.dli_fname != NULL - && dl_info.dli_sname != NULL - && (_Jv_argv == NULL || strcmp (file_name, _Jv_argv[0]) != 0)) - return createStackTraceElement (JvNewStringLatin1 (name), - JvNewStringLatin1 (file_name)); - } -#endif - return NULL; -} - -java::lang::StackTraceElement * -gnu::gcj::runtime::NameFinder::lookupInterp(RawData* addrs, jint n) -{ -#ifdef INTERPRETER - _Jv_frame_info *stack = (_Jv_frame_info *) addrs; - if (stack[n].interp == NULL) - return NULL; - - _Jv_InterpMethod *meth - = reinterpret_cast<_Jv_InterpMethod *> (stack[n].interp); - java::lang::StringBuffer *sb = new java::lang::StringBuffer(); - sb->append(_Jv_NewStringUtf8Const(meth->self->name)); - sb->append(_Jv_NewStringUtf8Const(meth->self->signature)); - // FIXME: source file name and line number can be found from - // bytecode debug information. But currently we don't keep that - // around. - // FIXME: is using the defining class correct here? - java::lang::String *className = meth->defining_class->getName(); - java::lang::String *methodName - = demangleInterpreterMethod(sb->toString(), className); - return new java::lang::StackTraceElement(NULL, -1, - className, methodName, false); -#else // INTERPRETER - return NULL; -#endif // INTERPRETER -} diff --git a/libjava/gnu/gcj/runtime/natStackTrace.cc b/libjava/gnu/gcj/runtime/natStackTrace.cc deleted file mode 100644 index d9f3355c046..00000000000 --- a/libjava/gnu/gcj/runtime/natStackTrace.cc +++ /dev/null @@ -1,241 +0,0 @@ -// natStackTrace.cc - native helper methods for Throwable - -/* Copyright (C) 2000, 2002, 2003 Free Software Foundation, Inc - - This file is part of libgcj. - -This software is copyrighted work licensed under the terms of the -Libgcj License. Please consult the file "LIBGCJ_LICENSE" for -details. */ - -/** - * @author Andrew Haley - * @author Mark Wielaard - * - * Native helper methods for VM specific Throwable support. - */ - -#include -#include - -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include - -#include - -#include - -#ifdef HAVE_EXECINFO_H -#include -#endif - -#include - - -#ifdef INTERPRETER -extern "C" void *_Unwind_FindEnclosingFunction (void *pc) - __attribute__((pure)); -#endif // INTERPRETER - -// Fill in this stack trace with MAXLEN elements starting at offset. -void -gnu::gcj::runtime::StackTrace::fillInStackTrace (jint maxlen, jint offset) -{ -#ifdef HAVE_BACKTRACE - offset += 1; - void *_p[maxlen + offset]; - len = backtrace (_p, maxlen + offset) - offset; - void **p = _p + offset; - _Jv_frame_info *frame; - if (len > 0) - { -#ifdef INTERPRETER - extern void *const _Jv_StartOfInterpreter; - extern void * _Jv_EndOfInterpreter; - - java::lang::Thread *thread = java::lang::Thread::currentThread(); - _Jv_MethodChain *interp_frame - = (thread ? reinterpret_cast<_Jv_MethodChain *> (thread->interp_frame) - : NULL); -#endif // INTERPRETER - - frame = (_Jv_frame_info *) _Jv_Malloc (len * sizeof (_Jv_frame_info)); - for (int n = 0; n < len; n++) - { - void *pc = p[n]; - frame[n].addr = pc; - -#ifdef INTERPRETER - frame[n].interp = 0; - - // If _Jv_StartOfInterpreter is NULL either we've never - // entered the intepreter or _Unwind_FindEnclosingFunction - // is broken. - if (__builtin_expect (_Jv_StartOfInterpreter != NULL, false)) - { - // _Jv_StartOfInterpreter marks the very first - // instruction in the interpreter, but - // _Jv_EndOfInterpreter is an upper bound. If PC is - // less than _Jv_EndOfInterpreter it might be in the - // interpreter: we call _Unwind_FindEnclosingFunction to - // find out. - if (pc >= _Jv_StartOfInterpreter - && (pc < _Jv_EndOfInterpreter - || _Jv_EndOfInterpreter == NULL)) - { - if (_Unwind_FindEnclosingFunction (pc) - == _Jv_StartOfInterpreter) - { - frame[n].interp = (void *) interp_frame->self; - interp_frame = interp_frame->next; - } - else - { - // We've found an address that we know is not within - // the interpreter. We use that to refine our upper - // bound on where the interpreter ends. - _Jv_EndOfInterpreter = pc; - } - } - } -#endif // INTERPRETER - - } - } - else - frame = NULL; - - addrs = reinterpret_cast (frame); -#else // HAVE_BACKTRACE - (void)maxlen; - (void)offset; -#endif // HAVE_BACKTRACE -} - -/* Obtain the next power-of-2 of some integer. */ -static inline jint -nextpowerof2 (jint n) -{ - n |= (n >> 1); - n |= (n >> 2); - n |= (n >> 4); - n |= (n >> 8); - n |= (n >> 16); - return n+1; -} - -#define GET_FRAME(N) \ -({ \ - if ((N) >= len) \ - fillInStackTrace (nextpowerof2 (N), 1); \ - if ((N) < 0 || (N) >= len) \ - throw new ::java::lang::ArrayIndexOutOfBoundsException (); \ - \ - _Jv_frame_info *frame = (_Jv_frame_info *)addrs; \ - &frame[N]; \ -}) - -gnu::gcj::runtime::MethodRef * -gnu::gcj::runtime::StackTrace::getCompiledMethodRef (gnu::gcj::RawData *addr) -{ - void *p = _Unwind_FindEnclosingFunction (addr); - return gnu::gcj::runtime::StackTrace - ::methodAtAddress ((gnu::gcj::RawData *)p); -} - -java::lang::Class * -gnu::gcj::runtime::StackTrace::getClass (gnu::gcj::RawData *p) -{ - gnu::gcj::runtime::MethodRef *ref = getCompiledMethodRef (p); - if (ref) - return ref->klass; - else - return NULL; -} - -java::lang::Class * -gnu::gcj::runtime::StackTrace::classAt (jint n) -{ - _Jv_frame_info *frame = GET_FRAME (n); - -#ifdef INTERPRETER - if (frame->interp) - { - _Jv_InterpMethod *meth - = reinterpret_cast<_Jv_InterpMethod *> (frame->interp); - return meth->defining_class; - } -#endif // INTERPRETER - - return getClass ((gnu::gcj::RawData *)frame->addr); -} - -java::lang::String* -gnu::gcj::runtime::StackTrace::methodAt (jint n) -{ - _Jv_frame_info *frame = GET_FRAME (n); - _Jv_Method *meth = NULL; - -#ifdef INTERPRETER - if (frame->interp) - { - meth - = reinterpret_cast<_Jv_InterpMethod *> (frame->interp) - ->get_method(); - } -#endif // INTERPRETER - - if (! meth) - { - gnu::gcj::runtime::MethodRef *ref - = getCompiledMethodRef ((gnu::gcj::RawData *)frame->addr); - if (ref) - meth = (_Jv_Method *)ref->method; - } - - return meth - ? _Jv_NewStringUtf8Const (meth->name) - : NULL ; -} - -void -gnu::gcj::runtime::StackTrace::update(void) -{ - jclass klass; - - while ((klass = _Jv_PopClass ())) - { - for (int i=0; imethod_count; i++) - { - JvSynchronize sync (map); - _Jv_Method *meth = &(klass->methods[i]); - if (meth->ncode) // i.e. if p is not abstract - { - gnu::gcj::runtime::MethodRef *ref - = new gnu::gcj::runtime::MethodRef - ((gnu::gcj::RawData *)meth, klass); - map->put ((java::lang::Object*)(meth->ncode), ref); - } - } - } -} - -void -gnu::gcj::runtime::StackTrace::finalize(void) -{ - if (addrs != NULL) - _Jv_Free (addrs); -} diff --git a/libjava/java/lang/natClass.cc b/libjava/java/lang/natClass.cc index 25343e38b05..f48a6fd77ed 100644 --- a/libjava/java/lang/natClass.cc +++ b/libjava/java/lang/natClass.cc @@ -54,7 +54,6 @@ details. */ #include #include #include -#include #include #include diff --git a/libjava/java/lang/natRuntime.cc b/libjava/java/lang/natRuntime.cc index d013878834d..f8e05ada84c 100644 --- a/libjava/java/lang/natRuntime.cc +++ b/libjava/java/lang/natRuntime.cc @@ -162,7 +162,6 @@ java::lang::Runtime::_load (jstring path, jboolean do_search) if (do_search) { - ClassLoader *sys = ClassLoader::systemClassLoader; ClassLoader *look = _Jv_StackTrace::GetFirstNonSystemClassLoader (); if (look != NULL)