equal
deleted
inserted
replaced
416 void StackTraceInstall::install_to_sample(ObjectSample* sample, const JfrStackTrace* stack_trace) { |
416 void StackTraceInstall::install_to_sample(ObjectSample* sample, const JfrStackTrace* stack_trace) { |
417 assert(sample != NULL, "invariant"); |
417 assert(sample != NULL, "invariant"); |
418 assert(stack_trace != NULL, "invariant"); |
418 assert(stack_trace != NULL, "invariant"); |
419 DEBUG_ONLY(validate_stack_trace(sample, stack_trace)); |
419 DEBUG_ONLY(validate_stack_trace(sample, stack_trace)); |
420 JfrStackTrace* const sample_trace = const_cast<JfrStackTrace*>(sample->stack_trace()); |
420 JfrStackTrace* const sample_trace = const_cast<JfrStackTrace*>(sample->stack_trace()); |
421 if (sample_trace != NULL) { |
421 if (sample_trace != NULL && sample_trace->id() != stack_trace->id()) { |
422 *sample_trace = *stack_trace; // copy |
422 *sample_trace = *stack_trace; // copy |
423 } else { |
423 } else { |
424 sample->set_stack_trace(new JfrStackTrace(stack_trace->id(), *stack_trace, NULL)); // new |
424 sample->set_stack_trace(new JfrStackTrace(stack_trace->id(), *stack_trace, NULL)); // new |
425 } |
425 } |
426 assert(sample->stack_trace() != NULL, "invariant"); |
426 assert(sample->stack_trace() != NULL, "invariant"); |