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 0e6747be Prevent MSVC warning messages (#150)
0e6747be is described below

commit 0e6747beaaf9fb0a495d97565fe5ae6c2796d312
Author: Stephen Webb <[email protected]>
AuthorDate: Sat Nov 12 16:38:01 2022 +1100

    Prevent MSVC warning messages (#150)
---
 src/main/cpp/hierarchy.cpp                      |  5 ++---
 src/main/cpp/logmanager.cpp                     | 10 ++++------
 src/main/cpp/rollingpolicybase.cpp              |  4 ++--
 src/main/include/log4cxx/hierarchy.h            |  8 +++-----
 src/main/include/log4cxx/spi/loggerrepository.h |  5 +++--
 src/test/cpp/abts.cpp                           |  7 +++----
 6 files changed, 17 insertions(+), 22 deletions(-)

diff --git a/src/main/cpp/hierarchy.cpp b/src/main/cpp/hierarchy.cpp
index 98c4ba6c..e9a63016 100644
--- a/src/main/cpp/hierarchy.cpp
+++ b/src/main/cpp/hierarchy.cpp
@@ -31,7 +31,6 @@
        #define LOG4CXX 1
 #endif
 #include <log4cxx/helpers/aprinitializer.h>
-#include <log4cxx/defaultconfigurator.h>
 #include <log4cxx/spi/rootlogger.h>
 #include <mutex>
 #include <apr.h>
@@ -300,12 +299,12 @@ bool Hierarchy::isDisabled(int level) const
        return m_priv->thresholdInt > level;
 }
 
-void Hierarchy::autoConfigure()
+void Hierarchy::ensureIsConfigured(std::function<void()> configurator)
 {
        std::unique_lock<std::mutex> lock(m_priv->configuredMutex);
        if (!m_priv->configured)
        {
-               DefaultConfigurator::configure(shared_from_this());
+               configurator();
                m_priv->configured = true;
        }
 }
diff --git a/src/main/cpp/logmanager.cpp b/src/main/cpp/logmanager.cpp
index e21f8bbe..08a4903e 100644
--- a/src/main/cpp/logmanager.cpp
+++ b/src/main/cpp/logmanager.cpp
@@ -21,6 +21,7 @@
 #endif
 
 #include <log4cxx/logmanager.h>
+#include <log4cxx/defaultconfigurator.h>
 #include <log4cxx/spi/defaultrepositoryselector.h>
 #include <log4cxx/hierarchy.h>
 #include <log4cxx/spi/rootlogger.h>
@@ -86,8 +87,7 @@ LoggerPtr LogManager::getRootLogger()
 {
        // Delegate the actual manufacturing of the logger to the logger 
repository.
        auto r = getLoggerRepository();
-       if (!r->isConfigured())
-               r->autoConfigure();
+       r->ensureIsConfigured(std::bind(DefaultConfigurator::configure, r));
        return r->getRootLogger();
 }
 
@@ -97,8 +97,7 @@ Retrieve the appropriate Logger instance.
 LoggerPtr LogManager::getLoggerLS(const LogString& name)
 {
        auto r = getLoggerRepository();
-       if (!r->isConfigured())
-               r->autoConfigure();
+       r->ensureIsConfigured(std::bind(DefaultConfigurator::configure, r));
        return r->getLogger(name);
 }
 
@@ -110,8 +109,7 @@ LoggerPtr LogManager::getLoggerLS(const LogString& name,
 {
        // Delegate the actual manufacturing of the logger to the logger 
repository.
        auto r = getLoggerRepository();
-       if (!r->isConfigured())
-               r->autoConfigure();
+       r->ensureIsConfigured(std::bind(DefaultConfigurator::configure, r));
        return r->getLogger(name, factory);
 }
 
diff --git a/src/main/cpp/rollingpolicybase.cpp 
b/src/main/cpp/rollingpolicybase.cpp
index c22a36a4..2d851ee1 100644
--- a/src/main/cpp/rollingpolicybase.cpp
+++ b/src/main/cpp/rollingpolicybase.cpp
@@ -126,9 +126,9 @@ void RollingPolicyBase::formatFileName(
                converterIter != m_priv->patternConverters.end();
                converterIter++, formatterIter++)
        {
-               int startField = toAppendTo.length();
+               auto startField = toAppendTo.length();
                (*converterIter)->format(obj, toAppendTo, pool);
-               (*formatterIter)->format(startField, toAppendTo);
+               (*formatterIter)->format((int)startField, toAppendTo);
        }
 }
 
diff --git a/src/main/include/log4cxx/hierarchy.h 
b/src/main/include/log4cxx/hierarchy.h
index 153e2e62..e4d06fde 100644
--- a/src/main/include/log4cxx/hierarchy.h
+++ b/src/main/include/log4cxx/hierarchy.h
@@ -52,9 +52,7 @@ then it creates a provision node for the ancestor and adds 
itself
 to the provision node. Other descendants of the same ancestor add
 themselves to the previously created provision node.
 */
-class LOG4CXX_EXPORT Hierarchy :
-       public virtual spi::LoggerRepository,
-       public std::enable_shared_from_this<Hierarchy>
+class LOG4CXX_EXPORT Hierarchy : public spi::LoggerRepository
 {
        private:
                LOG4CXX_DECLARE_PRIVATE_MEMBER_PTR(HierarchyPrivate, m_priv)
@@ -79,9 +77,9 @@ class LOG4CXX_EXPORT Hierarchy :
                void addHierarchyEventListener(const 
spi::HierarchyEventListenerPtr& listener) override;
 
                /**
-                * Call DefaultConfigurator::configure if not yet configured.
+                * Call \c configurator if not yet configured.
                 */
-               void autoConfigure() override;
+               void ensureIsConfigured(std::function<void()> configurator) 
override;
 
                /**
                This call will clear all logger definitions from the internal
diff --git a/src/main/include/log4cxx/spi/loggerrepository.h 
b/src/main/include/log4cxx/spi/loggerrepository.h
index e76bf16a..baf16e12 100644
--- a/src/main/include/log4cxx/spi/loggerrepository.h
+++ b/src/main/include/log4cxx/spi/loggerrepository.h
@@ -28,6 +28,7 @@
 #include <log4cxx/spi/loggerfactory.h>
 #include <log4cxx/level.h>
 #include <log4cxx/spi/hierarchyeventlistener.h>
+#include <functional>
 
 namespace log4cxx
 {
@@ -58,9 +59,9 @@ class LOG4CXX_EXPORT LoggerRepository : public virtual 
helpers::Object
                        listener) = 0;
 
                /**
-                * Load the configuration if not yet configured.
+                * Call \c configurator if not yet configured.
                 */
-               virtual void autoConfigure() {};
+               virtual void ensureIsConfigured(std::function<void()> 
configurator) = 0;
 
                /**
                Is the repository disabled for a given level? The answer depends
diff --git a/src/test/cpp/abts.cpp b/src/test/cpp/abts.cpp
index d40ec642..5843d649 100644
--- a/src/test/cpp/abts.cpp
+++ b/src/test/cpp/abts.cpp
@@ -527,8 +527,7 @@ void abts_not_impl(abts_case* tc, const char* message, int 
lineno)
 
 int main(int argc, const char* const argv[])
 {
-       int i;
-       int rv;
+       int rv = 0;
        int list_provided = 0;
        abts_suite* suite = NULL;
 
@@ -540,7 +539,7 @@ int main(int argc, const char* const argv[])
        quiet = !isatty(STDOUT_FILENO);
 #endif
 
-       for (i = 1; i < argc; i++)
+       for (int i = 1; i < argc; i++)
        {
                if (!strcmp(argv[i], "-v"))
                {
@@ -582,7 +581,7 @@ int main(int argc, const char* const argv[])
                 */
                testlist = (const char**) calloc(argc + 1, sizeof(char*));
 
-               for (i = 1; i < argc; i++)
+               for (int i = 1; i < argc; i++)
                {
                        testlist[i - 1] = argv[i];
                }

Reply via email to