Do less work when skipping timing reports

For some tests, the overhead of building up the table during startup is
a significant part of the runtime of the test. This speeds up one test
by 57% for example.

Change-Id: I370237510f8fcfe1c8a18395293f25fe44932f9e
Signed-off-by: Brian Silverman <brian.silverman@bluerivertech.com>
diff --git a/aos/events/timing_statistics.cc b/aos/events/timing_statistics.cc
index cdeb588..52f2048 100644
--- a/aos/events/timing_statistics.cc
+++ b/aos/events/timing_statistics.cc
@@ -7,35 +7,57 @@
 namespace internal {
 
 void RawFetcherTiming::set_timing_report(timing::Fetcher *new_fetcher) {
-  CHECK_NOTNULL(new_fetcher);
   fetcher = new_fetcher;
-  latency.set_statistic(fetcher->mutable_latency());
+  if (!new_fetcher) {
+    latency.set_statistic(nullptr);
+  } else {
+    latency.set_statistic(fetcher->mutable_latency());
+  }
 }
 
 void RawFetcherTiming::ResetTimingReport() {
+  if (!fetcher) {
+    return;
+  }
+
   latency.Reset();
   fetcher->mutate_count(0);
 }
 
 void RawSenderTiming::set_timing_report(timing::Sender *new_sender) {
-  CHECK_NOTNULL(new_sender);
   sender = new_sender;
-  size.set_statistic(sender->mutable_size());
+  if (!sender) {
+    size.set_statistic(nullptr);
+  } else {
+    size.set_statistic(sender->mutable_size());
+  }
 }
 
 void RawSenderTiming::ResetTimingReport() {
+  if (!sender) {
+    return;
+  }
+
   size.Reset();
   sender->mutate_count(0);
 }
 
 void TimerTiming::set_timing_report(timing::Timer *new_timer) {
-  CHECK_NOTNULL(new_timer);
   timer = new_timer;
-  wakeup_latency.set_statistic(timer->mutable_wakeup_latency());
-  handler_time.set_statistic(timer->mutable_handler_time());
+  if (!timer) {
+    wakeup_latency.set_statistic(nullptr);
+    handler_time.set_statistic(nullptr);
+  } else {
+    wakeup_latency.set_statistic(timer->mutable_wakeup_latency());
+    handler_time.set_statistic(timer->mutable_handler_time());
+  }
 }
 
 void TimerTiming::ResetTimingReport() {
+  if (!timer) {
+    return;
+  }
+
   wakeup_latency.Reset();
   handler_time.Reset();
   timer->mutate_count(0);