Make logfile decoders accept a nested decoder instead of filename.

Change-Id: I4685d1dfbbd2bdd336762ee67471fa275883b772
Signed-off-by: Tyler Chatow <tyler.chatow@bluerivertech.com>
diff --git a/aos/events/logging/logfile_utils.cc b/aos/events/logging/logfile_utils.cc
index cd2ceb8..4c19867 100644
--- a/aos/events/logging/logfile_utils.cc
+++ b/aos/events/logging/logfile_utils.cc
@@ -17,9 +17,9 @@
 #include "glog/logging.h"
 
 #if defined(__x86_64__)
-#define ENABLE_LZMA 1
+#define ENABLE_LZMA (!__has_feature(memory_sanitizer))
 #elif defined(__aarch64__)
-#define ENABLE_LZMA 1
+#define ENABLE_LZMA (!__has_feature(memory_sanitizer))
 #else
 #define ENABLE_LZMA 0
 #endif
@@ -317,15 +317,15 @@
 }
 
 SpanReader::SpanReader(std::string_view filename) : filename_(filename) {
-  static const std::string_view kXz = ".xz";
+  decoder_ = std::make_unique<DummyDecoder>(filename);
+
+  static constexpr std::string_view kXz = ".xz";
   if (filename.substr(filename.size() - kXz.size()) == kXz) {
 #if ENABLE_LZMA
-    decoder_ = std::make_unique<ThreadedLzmaDecoder>(filename);
+    decoder_ = std::make_unique<ThreadedLzmaDecoder>(std::move(decoder_));
 #else
     LOG(FATAL) << "Reading xz-compressed files not supported on this platform";
 #endif
-  } else {
-    decoder_ = std::make_unique<DummyDecoder>(filename);
   }
 }