diff src/share/vm/runtime/sharedRuntime.cpp @ 17884:cf9f24de0b93

8039904: dtrace/hotspot/Monitors/Monitors001 fails with "assert(s > 0) failed: Bad size calculated" Summary: Dtrace monitoring uses size before mirror size is set. Reviewed-by: kamg, hseigel
author coleenp
date Fri, 11 Apr 2014 20:02:37 +0000
parents a9becfeecd1b
children e0a77b91da68
line wrap: on
line diff
--- a/src/share/vm/runtime/sharedRuntime.cpp	Tue Apr 15 17:02:20 2014 -0400
+++ b/src/share/vm/runtime/sharedRuntime.cpp	Fri Apr 11 20:02:37 2014 +0000
@@ -960,14 +960,13 @@
  * it gets turned into a tail-call on sparc, which runs into dtrace bug
  * 6254741.  Once that is fixed we can remove the dummy return value.
  */
-int SharedRuntime::dtrace_object_alloc(oopDesc* o) {
-  return dtrace_object_alloc_base(Thread::current(), o);
+int SharedRuntime::dtrace_object_alloc(oopDesc* o, int size) {
+  return dtrace_object_alloc_base(Thread::current(), o, size);
 }
 
-int SharedRuntime::dtrace_object_alloc_base(Thread* thread, oopDesc* o) {
+int SharedRuntime::dtrace_object_alloc_base(Thread* thread, oopDesc* o, int size) {
   assert(DTraceAllocProbes, "wrong call");
   Klass* klass = o->klass();
-  int size = o->size();
   Symbol* name = klass->name();
 #ifndef USDT2
   HS_DTRACE_PROBE4(hotspot, object__alloc, get_java_tid(thread),