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
}
}