ソースを参照

AK: Make timeval_add() and timeval_sub() take references.

Andreas Kling 6 年 前
コミット
29a9430246
4 ファイル変更19 行追加18 行削除
  1. 15 12
      AK/Time.h
  2. 2 4
      Kernel/Process.cpp
  3. 1 1
      LibCore/CElapsedTimer.cpp
  4. 1 1
      LibCore/CEventLoop.cpp

+ 15 - 12
AK/Time.h

@@ -3,25 +3,28 @@
 namespace AK {
 
 template<typename TimevalType>
-inline void timeval_sub(const TimevalType* a, const TimevalType* b, TimevalType* result)
+inline void timeval_sub(const TimevalType& a, const TimevalType& b, TimevalType& result)
 {
-    result->tv_sec = a->tv_sec - b->tv_sec;
-    result->tv_usec = a->tv_usec - b->tv_usec;
-    if (result->tv_usec < 0) {
-        --result->tv_sec;
-        result->tv_usec += 1000000;
+    result.tv_sec = a.tv_sec - b.tv_sec;
+    result.tv_usec = a.tv_usec - b.tv_usec;
+    if (result.tv_usec < 0) {
+        --result.tv_sec;
+        result.tv_usec += 1000000;
     }
 }
 
 template<typename TimevalType>
-inline void timeval_add(const TimevalType* a, const TimevalType* b, TimevalType* result)
+inline void timeval_add(const TimevalType& a, const TimevalType& b, TimevalType& result)
 {
-    result->tv_sec = a->tv_sec + b->tv_sec;
-    result->tv_usec = a->tv_usec + b->tv_usec;
-    if (result->tv_usec > 1000000) {
-        ++result->tv_sec;
-        result->tv_usec -= 1000000;
+    result.tv_sec = a.tv_sec + b.tv_sec;
+    result.tv_usec = a.tv_usec + b.tv_usec;
+    if (result.tv_usec > 1000000) {
+        ++result.tv_sec;
+        result.tv_usec -= 1000000;
     }
 }
 
 }
+
+using AK::timeval_add;
+using AK::timeval_sub;

+ 2 - 4
Kernel/Process.cpp

@@ -1767,8 +1767,7 @@ int Process::sys$select(const Syscall::SC_select_params* params)
         return -EINVAL;
 
     if (params->timeout && (params->timeout->tv_sec || params->timeout->tv_usec)) {
-        auto now = kgettimeofday();
-        AK::timeval_add(&now, params->timeout, &current->m_select_timeout);
+        timeval_add(kgettimeofday(), *params->timeout, current->m_select_timeout);
         current->m_select_has_timeout = true;
     } else {
         current->m_select_has_timeout = false;
@@ -1842,8 +1841,7 @@ int Process::sys$poll(pollfd* fds, int nfds, int timeout)
             timeout -= 1000;
         }
         tvtimeout.tv_usec = timeout * 1000;
-        auto now = kgettimeofday();
-        AK::timeval_add(&now, &tvtimeout, &current->m_select_timeout);
+        timeval_add(kgettimeofday(), tvtimeout, current->m_select_timeout);
         current->m_select_has_timeout = true;
     } else {
         current->m_select_has_timeout = false;

+ 1 - 1
LibCore/CElapsedTimer.cpp

@@ -15,6 +15,6 @@ int CElapsedTimer::elapsed() const
     struct timeval now;
     gettimeofday(&now, nullptr);
     struct timeval diff;
-    AK::timeval_sub(&now, &m_start_time, &diff);
+    timeval_sub(now, m_start_time, diff);
     return diff.tv_sec * 1000 + diff.tv_usec / 1000;
 }

+ 1 - 1
LibCore/CEventLoop.cpp

@@ -191,7 +191,7 @@ void CEventLoop::wait_for_event(WaitMode mode)
         if (!s_timers->is_empty() && queued_events_is_empty) {
             gettimeofday(&now, nullptr);
             get_next_timer_expiration(timeout);
-            AK::timeval_sub(&timeout, &now, &timeout);
+            timeval_sub(timeout, now, timeout);
         } else {
             should_wait_forever = true;
         }