diff options
author | tromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4> | 2002-08-29 17:53:28 +0000 |
---|---|---|
committer | tromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4> | 2002-08-29 17:53:28 +0000 |
commit | 3196bed74979360646cbc8418db5c86c0527ced4 (patch) | |
tree | 538202560a3a2f376b6fb55ee3b836b195f01e73 /libjava/include/java-interp.h | |
parent | 1153c2dcea1d760a4e4503c103995e48d5399800 (diff) | |
download | gcc-3196bed74979360646cbc8418db5c86c0527ced4.tar.gz |
* 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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@56657 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/include/java-interp.h')
-rw-r--r-- | libjava/include/java-interp.h | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/libjava/include/java-interp.h b/libjava/include/java-interp.h index de1d88f452e..e3f96713ce7 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__ */ |