From e50e10ef8f06dbeac8f92daffc9344bb7621daf1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Ho=C5=99e=C5=88ovsk=C3=BD?= Date: Thu, 25 Mar 2021 19:30:59 +0100 Subject: [PATCH] Use std::string instead of StringRef as argument to the makeStream This is done because `makeStream` was the only place using `StringRef::c_str()`, which is an error-prone and unsafe API that I want to remove. --- src/catch2/internal/catch_stream.cpp | 4 ++-- src/catch2/internal/catch_stream.hpp | 5 ++--- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/src/catch2/internal/catch_stream.cpp b/src/catch2/internal/catch_stream.cpp index 3014256d..8b954c15 100644 --- a/src/catch2/internal/catch_stream.cpp +++ b/src/catch2/internal/catch_stream.cpp @@ -74,7 +74,7 @@ namespace Detail { class FileStream : public IStream { mutable std::ofstream m_ofs; public: - FileStream( StringRef filename ) { + FileStream( std::string const& filename ) { m_ofs.open( filename.c_str() ); CATCH_ENFORCE( !m_ofs.fail(), "Unable to open file: '" << filename << "'" ); } @@ -121,7 +121,7 @@ namespace Detail { /////////////////////////////////////////////////////////////////////////// - auto makeStream( StringRef const &filename ) -> IStream const* { + auto makeStream( std::string const& filename ) -> IStream const* { if( filename.empty() ) return new Detail::CoutStream(); else if( filename[0] == '%' ) { diff --git a/src/catch2/internal/catch_stream.hpp b/src/catch2/internal/catch_stream.hpp index 5f24fc38..4ff012d2 100644 --- a/src/catch2/internal/catch_stream.hpp +++ b/src/catch2/internal/catch_stream.hpp @@ -13,6 +13,7 @@ #include #include #include +#include namespace Catch { @@ -20,14 +21,12 @@ namespace Catch { std::ostream& cerr(); std::ostream& clog(); - class StringRef; - struct IStream { virtual ~IStream(); virtual std::ostream& stream() const = 0; }; - auto makeStream( StringRef const &filename ) -> IStream const*; + auto makeStream( std::string const& filename ) -> IStream const*; class ReusableStringStream : Detail::NonCopyable { std::size_t m_index;