You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by sw...@apache.org on 2022/10/10 07:26:35 UTC

[logging-log4cxx] branch next_stable updated: Fix compilation errors when the cmake LOG4CXX_UNICHAR option is enabled

This is an automated email from the ASF dual-hosted git repository.

swebb2066 pushed a commit to branch next_stable
in repository https://gitbox.apache.org/repos/asf/logging-log4cxx.git


The following commit(s) were added to refs/heads/next_stable by this push:
     new ca4b997f Fix compilation errors when the cmake LOG4CXX_UNICHAR option is enabled
ca4b997f is described below

commit ca4b997f56748710ed347aa442e185a8134d6e09
Author: Stephen Webb <st...@sabreautonomous.com.au>
AuthorDate: Mon Oct 10 18:26:22 2022 +1100

    Fix compilation errors when the cmake LOG4CXX_UNICHAR option is enabled
---
 src/main/cpp/messagebuffer.cpp                   | 39 +++++++++++-------------
 src/main/include/log4cxx/helpers/messagebuffer.h |  4 +--
 2 files changed, 20 insertions(+), 23 deletions(-)

diff --git a/src/main/cpp/messagebuffer.cpp b/src/main/cpp/messagebuffer.cpp
index a9a780ee..7314fd83 100644
--- a/src/main/cpp/messagebuffer.cpp
+++ b/src/main/cpp/messagebuffer.cpp
@@ -224,6 +224,7 @@ std::ostream& CharMessageBuffer::operator<<(void* val)
 	return ((std::ostream&) * this).operator << (val);
 }
 
+#if LOG4CXX_WCHAR_T_API
 struct WideMessageBuffer::WideMessageBufferPrivate{
 	WideMessageBufferPrivate() :
 		stream(nullptr){}
@@ -238,7 +239,7 @@ struct WideMessageBuffer::WideMessageBufferPrivate{
 	std::basic_ostringstream<wchar_t>* stream;
 };
 
-#if LOG4CXX_WCHAR_T_API
+
 WideMessageBuffer::WideMessageBuffer() :
 	m_priv(std::make_unique<WideMessageBufferPrivate>())
 {
@@ -563,31 +564,27 @@ std::ostream& MessageBuffer::operator<<(void* val)
 	return m_priv->cbuf.operator << (val);
 }
 
-
-#endif
-
-
 #if LOG4CXX_UNICHAR_API || LOG4CXX_CFSTRING_API
 UniCharMessageBuffer& MessageBuffer::operator<<(const std::basic_string<log4cxx::UniChar>& msg)
 {
-	ubuf = std::make_unique<UniCharMessageBuffer>();
+	m_priv->ubuf = std::make_unique<UniCharMessageBuffer>();
 	return (*m_priv->ubuf) << msg;
 }
 
 UniCharMessageBuffer& MessageBuffer::operator<<(const log4cxx::UniChar* msg)
 {
-	ubuf = std::make_unique<UniCharMessageBuffer>();
+	m_priv->ubuf = std::make_unique<UniCharMessageBuffer>();
 	return (*m_priv->ubuf) << msg;
 }
 UniCharMessageBuffer& MessageBuffer::operator<<(log4cxx::UniChar* msg)
 {
-	ubuf = std::make_unique<UniCharMessageBuffer>();
+	m_priv->ubuf = std::make_unique<UniCharMessageBuffer>();
 	return (*m_priv->ubuf) << (const log4cxx::UniChar*) msg;
 }
 
 UniCharMessageBuffer& MessageBuffer::operator<<(const log4cxx::UniChar msg)
 {
-	ubuf = std::make_unique<UniCharMessageBuffer>();
+	m_priv->ubuf = std::make_unique<UniCharMessageBuffer>();
 	return (*m_priv->ubuf) << msg;
 }
 
@@ -600,6 +597,7 @@ const std::basic_string<log4cxx::UniChar>& MessageBuffer::str(std::basic_ostream
 {
 	return m_priv->ubuf->str(os);
 }
+#endif // LOG4CXX_WCHAR_T_API
 
 struct UniCharMessageBuffer::UniCharMessageBufferPrivate {
 	UniCharMessageBufferPrivate() :
@@ -652,13 +650,13 @@ UniCharMessageBuffer::~UniCharMessageBuffer()
 
 UniCharMessageBuffer& UniCharMessageBuffer::operator<<(const std::basic_string<log4cxx::UniChar>& msg)
 {
-	if (stream == 0)
+	if (!m_priv->stream)
 	{
-		buf.append(msg);
+		m_priv->buf.append(msg);
 	}
 	else
 	{
-		*m_priv->stream << buf;
+		*m_priv->stream << m_priv->buf;
 	}
 
 	return *this;
@@ -674,7 +672,7 @@ UniCharMessageBuffer& UniCharMessageBuffer::operator<<(const log4cxx::UniChar* m
 		actualMsg = nullLiteral;
 	}
 
-	if (stream == 0)
+	if (!m_priv->stream)
 	{
 		m_priv->buf.append(actualMsg);
 	}
@@ -693,7 +691,7 @@ UniCharMessageBuffer& UniCharMessageBuffer::operator<<(log4cxx::UniChar* msg)
 
 UniCharMessageBuffer& UniCharMessageBuffer::operator<<(const log4cxx::UniChar msg)
 {
-	if (stream == 0)
+	if (!m_priv->stream)
 	{
 		m_priv->buf.append(1, msg);
 	}
@@ -707,13 +705,13 @@ UniCharMessageBuffer& UniCharMessageBuffer::operator<<(const log4cxx::UniChar ms
 
 UniCharMessageBuffer::operator UniCharMessageBuffer::uostream& ()
 {
-	if (stream == 0)
+	if (!m_priv->stream)
 	{
 		m_priv->stream = new std::basic_ostringstream<UniChar>();
 
 		if (!m_priv->buf.empty())
 		{
-			*m_priv->stream << buf;
+			*m_priv->stream << m_priv->buf;
 		}
 	}
 
@@ -785,10 +783,9 @@ UniCharMessageBuffer::uostream& UniCharMessageBuffer::operator<<(void* val)
 	return ((UniCharMessageBuffer::uostream&) * this).operator << (val);
 }
 
+#endif // LOG4CXX_UNICHAR_API || LOG4CXX_CFSTRING_API
 
 
-#endif
-
 #if LOG4CXX_CFSTRING_API
 #include <CoreFoundation/CFString.h>
 #include <vector>
@@ -824,8 +821,8 @@ UniCharMessageBuffer& UniCharMessageBuffer::operator<<(const CFStringRef& msg)
 
 UniCharMessageBuffer& MessageBuffer::operator<<(const CFStringRef& msg)
 {
-	ubuf = new UniCharMessageBuffer();
-	return (*ubuf) << msg;
+	m_priv->ubuf = std::make_unique<UniCharMessageBuffer>();
+	return (*m_priv->ubuf) << msg;
 }
-#endif
+#endif // LOG4CXX_CFSTRING_API
 
diff --git a/src/main/include/log4cxx/helpers/messagebuffer.h b/src/main/include/log4cxx/helpers/messagebuffer.h
index b4b65d81..9624722a 100644
--- a/src/main/include/log4cxx/helpers/messagebuffer.h
+++ b/src/main/include/log4cxx/helpers/messagebuffer.h
@@ -800,10 +800,10 @@ std::ostream& operator<<(MessageBuffer& os, const V& val)
 	typedef UniCharMessageBuffer LogCharMessageBuffer;
 #endif
 
-#else
+#else // !LOG4CXX_WCHAR_T_API
 typedef CharMessageBuffer MessageBuffer;
 typedef CharMessageBuffer LogCharMessageBuffer;
-#endif
+#endif // !LOG4CXX_WCHAR_T_API
 
 }
 }