diff --git a/yoga/YGConfig.cpp b/yoga/YGConfig.cpp index 2f73dd9a..c6c3380b 100644 --- a/yoga/YGConfig.cpp +++ b/yoga/YGConfig.cpp @@ -6,4 +6,13 @@ */ #include "YGConfig.h" -YGConfig::YGConfig(YGLogger logger) : logger(logger) {} +YGConfig::YGConfig(YGLogger logger) : logger_{logger} {} + +void YGConfig::log( + YGConfig* config, + YGNode* node, + YGLogLevel logLevel, + const char* format, + va_list args) { + logger_(config, node, logLevel, format, args); +} diff --git a/yoga/YGConfig.h b/yoga/YGConfig.h index 00415ce9..b4b2748b 100644 --- a/yoga/YGConfig.h +++ b/yoga/YGConfig.h @@ -10,17 +10,24 @@ #include "Yoga.h" struct YGConfig { - std::array()> - experimentalFeatures = {}; +private: + YGLogger logger_; + +public: bool useWebDefaults = false; bool useLegacyStretchBehaviour = false; bool shouldDiffLayoutWithoutLegacyStretchBehaviour = false; bool printTree = false; float pointScaleFactor = 1.0f; - YGLogger logger; YGCloneNodeFunc cloneNodeCallback = nullptr; + std::array()> + experimentalFeatures = {}; void* context = nullptr; YGMarkerCallbacks markerCallbacks = {nullptr, nullptr}; YGConfig(YGLogger logger); + void log(YGConfig*, YGNode*, YGLogLevel, const char*, va_list); + void setLogger(YGLogger logger) { + logger_ = logger; + } }; diff --git a/yoga/Yoga.cpp b/yoga/Yoga.cpp index 3b3208af..5dd7a816 100644 --- a/yoga/Yoga.cpp +++ b/yoga/Yoga.cpp @@ -4182,12 +4182,12 @@ void YGNodeCalculateLayout( void YGConfigSetLogger(const YGConfigRef config, YGLogger logger) { if (logger != nullptr) { - config->logger = logger; + config->setLogger(logger); } else { #ifdef ANDROID - config->logger = &YGAndroidLog; + config->setLogger(&YGAndroidLog); #else - config->logger = &YGDefaultLog; + config->setLogger(&YGDefaultLog); #endif } } diff --git a/yoga/log.cpp b/yoga/log.cpp index 256bd811..390c581f 100644 --- a/yoga/log.cpp +++ b/yoga/log.cpp @@ -24,7 +24,7 @@ void vlog( const char* format, va_list args) { YGConfig* logConfig = config != nullptr ? config : YGConfigGetDefault(); - logConfig->logger(logConfig, node, level, format, args); + logConfig->log(logConfig, node, level, format, args); if (level == YGLogLevelFatal) { abort();