hotspot/src/share/vm/utilities/decoder.cpp
changeset 13340 40c424a6ff53
parent 11761 bf460b379a6a
child 13963 e5b53c306fb5
--- a/hotspot/src/share/vm/utilities/decoder.cpp	Thu Jul 19 06:24:46 2012 -0700
+++ b/hotspot/src/share/vm/utilities/decoder.cpp	Mon Jul 30 10:25:52 2012 -0400
@@ -91,6 +91,18 @@
   return decoder->decode(addr, buf, buflen, offset, modulepath);
 }
 
+bool Decoder::decode(address addr, char* buf, int buflen, int* offset, const void* base) {
+  assert(_shared_decoder_lock != NULL, "Just check");
+  bool error_handling_thread = os::current_thread_id() == VMError::first_error_tid;
+  MutexLockerEx locker(error_handling_thread ? NULL : _shared_decoder_lock, true);
+  AbstractDecoder* decoder = error_handling_thread ?
+    get_error_handler_instance(): get_shared_instance();
+  assert(decoder != NULL, "null decoder");
+
+  return decoder->decode(addr, buf, buflen, offset, base);
+}
+
+
 bool Decoder::demangle(const char* symbol, char* buf, int buflen) {
   assert(_shared_decoder_lock != NULL, "Just check");
   bool error_handling_thread = os::current_thread_id() == VMError::first_error_tid;