From c7abc23ef4788fa618823987494a3ab6e695d3f2 Mon Sep 17 00:00:00 2001 From: blueloveTH Date: Sat, 17 Feb 2024 23:12:07 +0800 Subject: [PATCH] fix a bug --- src/profiler.cpp | 26 +++++++++----------------- 1 file changed, 9 insertions(+), 17 deletions(-) diff --git a/src/profiler.cpp b/src/profiler.cpp index 7048e428..7f17098c 100644 --- a/src/profiler.cpp +++ b/src/profiler.cpp @@ -47,8 +47,11 @@ void LineProfiler::_step_end(FrameId frame){ LineRecord* prev_record = top_frame_record.prev_record; if(prev_record->line != top_frame_record.prev_line){ - prev_record->hits++; top_frame_record.prev_line = prev_record->line; + clock_t delta = now - top_frame_record.prev_time; + top_frame_record.prev_time = now; + prev_record->hits++; + prev_record->time += delta; } int id_delta = frame.index - top_frame_record.frame.index; @@ -57,17 +60,7 @@ void LineProfiler::_step_end(FrameId frame){ if(id_delta == 1){ frames.push({frame, now, nullptr, -1}); }else{ - clock_t delta = now - top_frame_record.prev_time; - top_frame_record.prev_time = now; - prev_record->time += delta; - if(id_delta == -1){ - frames.pop(); - top_frame_record = frames.top(); - prev_record = top_frame_record.prev_record; - clock_t delta = now - top_frame_record.prev_time; - top_frame_record.prev_time = now; - prev_record->time += delta; - } + if(id_delta == -1) frames.pop(); } } @@ -77,14 +70,13 @@ void LineProfiler::end(){ LineRecord* prev_record = top_frame_record.prev_record; if(prev_record->line != top_frame_record.prev_line){ - prev_record->hits++; top_frame_record.prev_line = prev_record->line; + clock_t delta = now - top_frame_record.prev_time; + top_frame_record.prev_time = now; + prev_record->hits++; + prev_record->time += delta; } - clock_t delta = now - top_frame_record.prev_time; - top_frame_record.prev_time = now; - prev_record->time += delta; - frames.pop(); PK_ASSERT(frames.empty()); }