aboutsummaryrefslogtreecommitdiff
path: root/libjava/include/java-interp.h
diff options
context:
space:
mode:
authorTom Tromey <tromey@redhat.com>2002-08-29 17:53:28 +0000
committerTom Tromey <tromey@gcc.gnu.org>2002-08-29 17:53:28 +0000
commit3308c46e47a0b17d37b4c29a130e6519c424a737 (patch)
tree538202560a3a2f376b6fb55ee3b836b195f01e73 /libjava/include/java-interp.h
parentce4e997039ab374d5d1719b02aae3ded0a2a8ec4 (diff)
downloadgcc-3308c46e47a0b17d37b4c29a130e6519c424a737.zip
gcc-3308c46e47a0b17d37b4c29a130e6519c424a737.tar.gz
gcc-3308c46e47a0b17d37b4c29a130e6519c424a737.tar.bz2
jvm.h (struct _Jv_frame_info): New structure.
* include/jvm.h (struct _Jv_frame_info): New structure. * gnu/gcj/runtime/natNameFinder.cc: Include StringBuffer.h, java-interp.h. (lookupInterp): New method. (getAddrAsString): Use _Jv_frame_info. (dladdrLookup): Likewise. * gnu/gcj/runtime/NameFinder.java (lookup): Try to look up interpreted frame. (lookupInterp): Declare. * java/lang/natVMThrowable.cc: Include Thread.h, java-interp.h. (fillInStackTrace): Collect information on interpreted frames. Use _Jv_frame_info. * interpret.cc: Include Thread.h. (run): Create and push _Jv_MethodChain object. (_Jv_EndOfInterpreter): New global. * java/lang/Thread.java (interp_frame): New field. * include/java-interp.h (struct _Jv_MethodChain): New structure. Include NameFinder.h. From-SVN: r56657
Diffstat (limited to 'libjava/include/java-interp.h')
-rw-r--r--libjava/include/java-interp.h24
1 files changed, 24 insertions, 0 deletions
diff --git a/libjava/include/java-interp.h b/libjava/include/java-interp.h
index de1d88f..e3f9671 100644
--- a/libjava/include/java-interp.h
+++ b/libjava/include/java-interp.h
@@ -13,6 +13,7 @@ details. */
#include <jvm.h>
#include <java-cpool.h>
+#include <gnu/gcj/runtime/NameFinder.h>
#ifdef INTERPRETER
@@ -138,6 +139,7 @@ class _Jv_InterpMethod : public _Jv_MethodBase
friend class _Jv_ClassReader;
friend class _Jv_BytecodeVerifier;
+ friend class gnu::gcj::runtime::NameFinder;
friend void _Jv_PrepareClass(jclass);
};
@@ -205,6 +207,28 @@ public:
}
};
+// A structure of this type is used to link together interpreter
+// invocations on the stack.
+struct _Jv_MethodChain
+{
+ const _Jv_InterpMethod *self;
+ _Jv_MethodChain **ptr;
+ _Jv_MethodChain *next;
+
+ _Jv_MethodChain (const _Jv_InterpMethod *s, _Jv_MethodChain **n)
+ {
+ self = s;
+ ptr = n;
+ next = *n;
+ *n = this;
+ }
+
+ ~_Jv_MethodChain ()
+ {
+ *ptr = next;
+ }
+};
+
#endif /* INTERPRETER */
#endif /* __JAVA_INTERP_H__ */