From 0846986cacb745e1f6184b8c0b871c0e16688c18 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Thu, 25 Jul 2019 07:00:33 +0200 Subject: [PATCH] LogStream: Preserve errno for the lifetime of a LogStream object. --- AK/LogStream.h | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/AK/LogStream.h b/AK/LogStream.h index ec88773d38..8eb7cca626 100644 --- a/AK/LogStream.h +++ b/AK/LogStream.h @@ -2,6 +2,11 @@ #include +#ifdef USERLAND +#include +#include +#endif + namespace AK { class String; @@ -56,7 +61,12 @@ private: class LogStream { public: - LogStream() {} + LogStream() +#ifdef USERLAND + : m_errno_restorer(errno) +#endif + { + } virtual ~LogStream() {} virtual void write(const char*, int) const = 0; @@ -64,6 +74,11 @@ public: protected: friend const LogStream& operator<<(const LogStream&, const TStyle&); mutable bool m_needs_style_reset { false }; + +private: +#ifdef USERLAND + ValueRestorer m_errno_restorer; +#endif }; class DebugLogStream final : public LogStream {