958 /** |
958 /** |
959 * This function ought to be a void function, but cannot be because |
959 * This function ought to be a void function, but cannot be because |
960 * it gets turned into a tail-call on sparc, which runs into dtrace bug |
960 * it gets turned into a tail-call on sparc, which runs into dtrace bug |
961 * 6254741. Once that is fixed we can remove the dummy return value. |
961 * 6254741. Once that is fixed we can remove the dummy return value. |
962 */ |
962 */ |
963 int SharedRuntime::dtrace_object_alloc(oopDesc* o) { |
963 int SharedRuntime::dtrace_object_alloc(oopDesc* o, int size) { |
964 return dtrace_object_alloc_base(Thread::current(), o); |
964 return dtrace_object_alloc_base(Thread::current(), o, size); |
965 } |
965 } |
966 |
966 |
967 int SharedRuntime::dtrace_object_alloc_base(Thread* thread, oopDesc* o) { |
967 int SharedRuntime::dtrace_object_alloc_base(Thread* thread, oopDesc* o, int size) { |
968 assert(DTraceAllocProbes, "wrong call"); |
968 assert(DTraceAllocProbes, "wrong call"); |
969 Klass* klass = o->klass(); |
969 Klass* klass = o->klass(); |
970 int size = o->size(); |
|
971 Symbol* name = klass->name(); |
970 Symbol* name = klass->name(); |
972 #ifndef USDT2 |
971 #ifndef USDT2 |
973 HS_DTRACE_PROBE4(hotspot, object__alloc, get_java_tid(thread), |
972 HS_DTRACE_PROBE4(hotspot, object__alloc, get_java_tid(thread), |
974 name->bytes(), name->utf8_length(), size * HeapWordSize); |
973 name->bytes(), name->utf8_length(), size * HeapWordSize); |
975 #else /* USDT2 */ |
974 #else /* USDT2 */ |