Browse Source

SystemMonitor: Use HashMap::ensure() in ProcessModel::update()

Andreas Kling 3 years ago
parent
commit
6f6473d6a4
1 changed files with 3 additions and 9 deletions
  1. 3 9
      Userland/Applications/SystemMonitor/ProcessModel.cpp

+ 3 - 9
Userland/Applications/SystemMonitor/ProcessModel.cpp

@@ -369,15 +369,9 @@ void ProcessModel::update()
                 state.state = thread.state;
                 state.state = thread.state;
                 sum_time_scheduled += thread.time_user + thread.time_kernel;
                 sum_time_scheduled += thread.time_user + thread.time_kernel;
                 sum_time_scheduled_kernel += thread.time_kernel;
                 sum_time_scheduled_kernel += thread.time_kernel;
-                {
-                    auto pit = m_threads.find(thread.tid);
-                    if (pit == m_threads.end())
-                        m_threads.set(thread.tid, make<Thread>());
-                }
-                auto pit = m_threads.find(thread.tid);
-                VERIFY(pit != m_threads.end());
-                (*pit).value->previous_state = (*pit).value->current_state;
-                (*pit).value->current_state = state;
+                auto& thread_data = *m_threads.ensure(thread.tid, [] { return make<Thread>(); });
+                thread_data.previous_state = move(thread_data.current_state);
+                thread_data.current_state = move(state);
 
 
                 live_tids.set(thread.tid);
                 live_tids.set(thread.tid);
             }
             }