This is an automated email from the ASF dual-hosted git repository. swebb2066 pushed a commit to branch prevent_msvc_warnings in repository https://gitbox.apache.org/repos/asf/logging-log4cxx.git
commit ed0ec98b5ed4e216d9de4cb3c9f981aaa10e356e Author: Stephen Webb <[email protected]> AuthorDate: Sat Nov 12 16:12:46 2022 +1100 Prevent MSVC warning messages --- src/main/cpp/hierarchy.cpp | 5 ++--- src/main/cpp/logmanager.cpp | 10 ++++------ src/main/cpp/rollingpolicybase.cpp | 4 ++-- src/main/include/log4cxx/hierarchy.h | 6 ++---- src/main/include/log4cxx/spi/loggerrepository.h | 3 ++- src/test/cpp/abts.cpp | 7 +++---- 6 files changed, 15 insertions(+), 20 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..2915d868 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) @@ -81,7 +79,7 @@ class LOG4CXX_EXPORT Hierarchy : /** * Call DefaultConfigurator::configure 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..47e78a75 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 { @@ -60,7 +61,7 @@ class LOG4CXX_EXPORT LoggerRepository : public virtual helpers::Object /** * Load the configuration 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]; }
