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 <[email protected]>
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
 
 }
 }

Reply via email to