blueloveTH 2 年 前
コミット
c7abc23ef4
1 ファイル変更9 行追加17 行削除
  1. 9 17
      src/profiler.cpp

+ 9 - 17
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());
 }