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);
}
}