changeset 3706:a59727158259

hide HotSpotMethodResolvedImpl.javaMirror field in debuggers
author Lukas Stadler <lukas.stadler@jku.at>
date Fri, 02 Dec 2011 13:31:00 +0100
parents 6917cd12e8f8
children 0ac36a6d5ab0
files src/share/vm/graal/graalJavaAccess.cpp src/share/vm/graal/graalJavaAccess.hpp src/share/vm/runtime/reflectionUtils.cpp
diffstat 3 files changed, 11 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/share/vm/graal/graalJavaAccess.cpp	Thu Dec 01 15:04:28 2011 +0100
+++ b/src/share/vm/graal/graalJavaAccess.cpp	Fri Dec 02 13:31:00 2011 +0100
@@ -28,7 +28,7 @@
 // This function is similar to javaClasses.cpp, it computes the field offset of a (static or instance) field.
 // It looks up the name and signature symbols without creating new ones, all the symbols of these classes need to be already loaded.
 
-static void compute_offset(int &dest_offset, klassOop klass_oop, const char* name, const char* signature, bool static_field) {
+void compute_offset(int &dest_offset, klassOop klass_oop, const char* name, const char* signature, bool static_field) {
   Symbol* name_symbol = SymbolTable::probe(name, (int)strlen(name));
   Symbol* signature_symbol = SymbolTable::probe(signature, (int)strlen(signature));
 #ifdef DEBUG
--- a/src/share/vm/graal/graalJavaAccess.hpp	Thu Dec 01 15:04:28 2011 +0100
+++ b/src/share/vm/graal/graalJavaAccess.hpp	Fri Dec 02 13:31:00 2011 +0100
@@ -285,4 +285,4 @@
 #undef OOP_FIELD
 #undef STATIC_OOP_FIELD
 
-
+void compute_offset(int &dest_offset, klassOop klass_oop, const char* name, const char* signature, bool static_field);
--- a/src/share/vm/runtime/reflectionUtils.cpp	Thu Dec 01 15:04:28 2011 +0100
+++ b/src/share/vm/runtime/reflectionUtils.cpp	Fri Dec 02 13:31:00 2011 +0100
@@ -26,6 +26,9 @@
 #include "classfile/javaClasses.hpp"
 #include "memory/universe.inline.hpp"
 #include "runtime/reflectionUtils.hpp"
+#ifdef GRAAL
+#include "graal/graalJavaAccess.hpp"
+#endif
 
 KlassStream::KlassStream(instanceKlassHandle klass, bool local_only, bool classes_only) {
   _klass = klass;
@@ -75,6 +78,12 @@
     offset = sun_reflect_UnsafeStaticFieldAccessorImpl::base_offset();
     _filtered_fields->append(new FilteredField(SystemDictionary::reflect_UnsafeStaticFieldAccessorImpl_klass(), offset));
   }
+#ifdef GRAAL
+  if (UseGraal) {
+    compute_offset(offset, SystemDictionary::HotSpotMethodResolved_klass(), "javaMirror", "Ljava/lang/Object;", false);
+    _filtered_fields->append(new FilteredField(SystemDictionary::HotSpotMethodResolved_klass(), offset));
+  }
+#endif
 }
 
 int FilteredFieldStream::field_count() {