Index: src/platform-solaris.cc |
diff --git a/src/platform-solaris.cc b/src/platform-solaris.cc |
index d6fa4159d14511fae4f3f782ab918af1a629e1e5..36d89e6d12a8c750c9cda23f5d7426adc1ef95da 100644 |
--- a/src/platform-solaris.cc |
+++ b/src/platform-solaris.cc |
@@ -669,9 +669,8 @@ static void ProfilerSignalHandler(int signal, siginfo_t* info, void* context) { |
Sampler* sampler = isolate->logger()->sampler(); |
if (sampler == NULL || !sampler->IsActive()) return; |
- TickSample sample_obj; |
- TickSample* sample = CpuProfiler::TickSampleEvent(isolate); |
- if (sample == NULL) sample = &sample_obj; |
+ TickSample* sample = CpuProfiler::StartTickSampleEvent(isolate); |
+ if (sample == NULL) return; |
// Extracting the sample from the context is extremely machine dependent. |
ucontext_t* ucontext = reinterpret_cast<ucontext_t*>(context); |
@@ -684,6 +683,7 @@ static void ProfilerSignalHandler(int signal, siginfo_t* info, void* context) { |
sampler->SampleStack(sample); |
sampler->Tick(sample); |
+ CpuProfiler::FinishTickSampleEvent(isolate); |
} |
class Sampler::PlatformData : public Malloced { |