Commit bde6c7a9 by Keith Seitz Committed by Keith Seitz

java-interp.h (_Jv_InterpClass): Declare friend function _Jv_GetInterpClassSourceFile.

        * include/java-interp.h (_Jv_InterpClass): Declare
        friend function _Jv_GetInterpClassSourceFile.
        * java/lang/Class.h (Class): Likewise.
        * java/lang/natClass.cc (_Jv_GetInterpClassSourceFile):
        New function.
        * gnu/classpath/jdwp/natVMVirtualMachine.cc
        (getSourceFile): Implement.

From-SVN: r122882
parent 03943c05
2007-03-13 Keith Seitz <keiths@redhat.com>
* include/java-interp.h (_Jv_InterpClass): Declare
friend function _Jv_GetInterpClassSourceFile.
* java/lang/Class.h (Class): Likewise.
* java/lang/natClass.cc (_Jv_GetInterpClassSourceFile):
New function.
* gnu/classpath/jdwp/natVMVirtualMachine.cc
(getSourceFile): Implement.
2007-03-13 Thomas Fitzsimmons <fitzsim@redhat.com> 2007-03-13 Thomas Fitzsimmons <fitzsim@redhat.com>
* Makefile.am (AM_CXXFLAGS): Define ECJ_JAR_FILE. * Makefile.am (AM_CXXFLAGS): Define ECJ_JAR_FILE.
......
...@@ -644,9 +644,9 @@ executeMethod (MAYBE_UNUSED jobject obj, MAYBE_UNUSED Thread *thread, ...@@ -644,9 +644,9 @@ executeMethod (MAYBE_UNUSED jobject obj, MAYBE_UNUSED Thread *thread,
jstring jstring
gnu::classpath::jdwp::VMVirtualMachine:: gnu::classpath::jdwp::VMVirtualMachine::
getSourceFile (MAYBE_UNUSED jclass clazz) getSourceFile (jclass clazz)
{ {
return NULL; return _Jv_GetInterpClassSourceFile (clazz);
} }
// A simple caching function used while single-stepping // A simple caching function used while single-stepping
......
...@@ -306,6 +306,7 @@ class _Jv_InterpClass ...@@ -306,6 +306,7 @@ class _Jv_InterpClass
#endif #endif
friend _Jv_MethodBase ** _Jv_GetFirstMethod (_Jv_InterpClass *klass); friend _Jv_MethodBase ** _Jv_GetFirstMethod (_Jv_InterpClass *klass);
friend jstring _Jv_GetInterpClassSourceFile (jclass);
}; };
extern inline _Jv_MethodBase ** extern inline _Jv_MethodBase **
......
...@@ -267,6 +267,7 @@ _Jv_Utf8Const *_Jv_GetClassNameUtf8 (jclass); ...@@ -267,6 +267,7 @@ _Jv_Utf8Const *_Jv_GetClassNameUtf8 (jclass);
// Finds a desired interpreter method in the given class or NULL if not found // Finds a desired interpreter method in the given class or NULL if not found
class _Jv_MethodBase; class _Jv_MethodBase;
_Jv_MethodBase *_Jv_FindInterpreterMethod (jclass, jmethodID); _Jv_MethodBase *_Jv_FindInterpreterMethod (jclass, jmethodID);
jstring _Jv_GetInterpClassSourceFile (jclass);
#endif #endif
jbyte _Jv_GetClassState (jclass); jbyte _Jv_GetClassState (jclass);
...@@ -568,6 +569,7 @@ private: ...@@ -568,6 +569,7 @@ private:
#ifdef INTERPRETER #ifdef INTERPRETER
friend _Jv_MethodBase *(::_Jv_FindInterpreterMethod) (jclass klass, friend _Jv_MethodBase *(::_Jv_FindInterpreterMethod) (jclass klass,
jmethodID desired_method); jmethodID desired_method);
friend jstring ::_Jv_GetInterpClassSourceFile (jclass);
#endif #endif
friend jbyte (::_Jv_GetClassState) (jclass klass); friend jbyte (::_Jv_GetClassState) (jclass klass);
......
...@@ -2064,3 +2064,15 @@ _Jv_GetClassState (jclass klass) ...@@ -2064,3 +2064,15 @@ _Jv_GetClassState (jclass klass)
return klass->state; return klass->state;
} }
jstring
_Jv_GetInterpClassSourceFile (jclass klass)
{
if (_Jv_IsInterpretedClass (klass))
{
_Jv_InterpClass *iclass =
reinterpret_cast<_Jv_InterpClass *> (klass->aux_info);
return iclass->source_file_name;
}
return NULL;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment