--- 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;