summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkseitz <kseitz@138bc75d-0d04-0410-961f-82ee72b054a4>2007-03-13 19:27:13 +0000
committerkseitz <kseitz@138bc75d-0d04-0410-961f-82ee72b054a4>2007-03-13 19:27:13 +0000
commit9aa32ea5b112f08cd0cc46877f822de9ec07605d (patch)
tree84c60497e614863868aee45041d96dd1611f3f1f
parenta8971681232fc552ae580c703d55a11f1fb0f84d (diff)
downloadppe42-gcc-9aa32ea5b112f08cd0cc46877f822de9ec07605d.tar.gz
ppe42-gcc-9aa32ea5b112f08cd0cc46877f822de9ec07605d.zip
* 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@122882 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--libjava/ChangeLog10
-rw-r--r--libjava/gnu/classpath/jdwp/natVMVirtualMachine.cc4
-rw-r--r--libjava/include/java-interp.h1
-rw-r--r--libjava/java/lang/Class.h2
-rw-r--r--libjava/java/lang/natClass.cc12
5 files changed, 27 insertions, 2 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog
index a7e76caee02..4d349a7c731 100644
--- a/libjava/ChangeLog
+++ b/libjava/ChangeLog
@@ -1,3 +1,13 @@
+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>
* Makefile.am (AM_CXXFLAGS): Define ECJ_JAR_FILE.
diff --git a/libjava/gnu/classpath/jdwp/natVMVirtualMachine.cc b/libjava/gnu/classpath/jdwp/natVMVirtualMachine.cc
index 3ea5f9a76d6..2229a451771 100644
--- a/libjava/gnu/classpath/jdwp/natVMVirtualMachine.cc
+++ b/libjava/gnu/classpath/jdwp/natVMVirtualMachine.cc
@@ -644,9 +644,9 @@ executeMethod (MAYBE_UNUSED jobject obj, MAYBE_UNUSED Thread *thread,
jstring
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
diff --git a/libjava/include/java-interp.h b/libjava/include/java-interp.h
index c294cc81896..ee45faa18d8 100644
--- a/libjava/include/java-interp.h
+++ b/libjava/include/java-interp.h
@@ -306,6 +306,7 @@ class _Jv_InterpClass
#endif
friend _Jv_MethodBase ** _Jv_GetFirstMethod (_Jv_InterpClass *klass);
+ friend jstring _Jv_GetInterpClassSourceFile (jclass);
};
extern inline _Jv_MethodBase **
diff --git a/libjava/java/lang/Class.h b/libjava/java/lang/Class.h
index 80c410009ea..af0219892f1 100644
--- a/libjava/java/lang/Class.h
+++ b/libjava/java/lang/Class.h
@@ -267,6 +267,7 @@ _Jv_Utf8Const *_Jv_GetClassNameUtf8 (jclass);
// Finds a desired interpreter method in the given class or NULL if not found
class _Jv_MethodBase;
_Jv_MethodBase *_Jv_FindInterpreterMethod (jclass, jmethodID);
+jstring _Jv_GetInterpClassSourceFile (jclass);
#endif
jbyte _Jv_GetClassState (jclass);
@@ -568,6 +569,7 @@ private:
#ifdef INTERPRETER
friend _Jv_MethodBase *(::_Jv_FindInterpreterMethod) (jclass klass,
jmethodID desired_method);
+ friend jstring ::_Jv_GetInterpClassSourceFile (jclass);
#endif
friend jbyte (::_Jv_GetClassState) (jclass klass);
diff --git a/libjava/java/lang/natClass.cc b/libjava/java/lang/natClass.cc
index 79fa59989d3..a6b353f2a95 100644
--- a/libjava/java/lang/natClass.cc
+++ b/libjava/java/lang/natClass.cc
@@ -2064,3 +2064,15 @@ _Jv_GetClassState (jclass klass)
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;
+}
OpenPOWER on IntegriCloud