diff --git a/src/gallium/drivers/r600/sfn/sfn_debug.cpp b/src/gallium/drivers/r600/sfn/sfn_debug.cpp index d993d42af9f..92357fc2074 100644 --- a/src/gallium/drivers/r600/sfn/sfn_debug.cpp +++ b/src/gallium/drivers/r600/sfn/sfn_debug.cpp @@ -29,16 +29,6 @@ namespace r600 { -class stderr_streambuf : public std::streambuf -{ -public: - stderr_streambuf(); -protected: - int sync(); - int overflow(int c); - std::streamsize xsputn ( const char *s, std::streamsize n ); -}; - stderr_streambuf::stderr_streambuf() { @@ -87,7 +77,8 @@ std::streamsize stderr_streambuf::xsputn ( const char *s, std::streamsize n ) SfnLog::SfnLog(): m_active_log_flags(0), m_log_mask(0), - m_output(new stderr_streambuf()) + m_buf(), + m_output(&m_buf) { m_log_mask = debug_get_flags_option("R600_NIR_DEBUG", sfn_debug_options, 0); m_log_mask ^= err; diff --git a/src/gallium/drivers/r600/sfn/sfn_debug.h b/src/gallium/drivers/r600/sfn/sfn_debug.h index 372379c66cb..3910b2787b5 100644 --- a/src/gallium/drivers/r600/sfn/sfn_debug.h +++ b/src/gallium/drivers/r600/sfn/sfn_debug.h @@ -38,6 +38,16 @@ namespace r600 { */ +class stderr_streambuf : public std::streambuf +{ +public: + stderr_streambuf(); +protected: + int sync(); + int overflow(int c); + std::streamsize xsputn ( const char *s, std::streamsize n ); +}; + class SfnLog { public: enum LogFlag { @@ -95,6 +105,7 @@ public: private: uint64_t m_active_log_flags; uint64_t m_log_mask; + stderr_streambuf m_buf; std::ostream m_output; };