From 15740faf9fe9fe4be08965098bbf2947e096aeeb Mon Sep 17 00:00:00 2001 From: chai Date: Wed, 14 Aug 2019 22:50:43 +0800 Subject: +Unity Runtime code --- Runtime/Containers/ConstantStringManager.cpp | 91 ++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 Runtime/Containers/ConstantStringManager.cpp (limited to 'Runtime/Containers/ConstantStringManager.cpp') diff --git a/Runtime/Containers/ConstantStringManager.cpp b/Runtime/Containers/ConstantStringManager.cpp new file mode 100644 index 0000000..157d98d --- /dev/null +++ b/Runtime/Containers/ConstantStringManager.cpp @@ -0,0 +1,91 @@ +#include "UnityPrefix.h" +#include "ConstantStringManager.h" +#include "Runtime/Utilities/InitializeAndCleanup.h" + +static ConstantStringManager* gConstantStringManager = NULL; + +void ConstantStringManager::ProfileCommonString (const char* str) +{ +#if PROFILE_COMMON_STRINGS + SET_ALLOC_OWNER(this); + m_CommonStringMutex.Lock(); + m_CommonStringCounter[str]++; + m_CommonStringMutex.Unlock(); +#endif +} + +void ConstantStringManager::DumpCommonStrings () +{ +#if PROFILE_COMMON_STRINGS + for(CommonStringCounter::iterator i=m_CommonStringCounter.begin();i != m_CommonStringCounter.end();++i) + { + printf_console("%d\t -> '%s'\n", i->second, i->first.c_str()); + } +#endif +} + +ConstantStringManager::ConstantStringManager () +{ + AddConstantString(""); + AddConstantString("TextMesh"); +} + +ConstantStringManager::~ConstantStringManager () +{ + for (int i=0;iDumpCommonStrings (); + UNITY_DELETE(gConstantStringManager, kMemString); + gConstantStringManager = NULL; +} +static RegisterRuntimeInitializeAndCleanup s_ConstantStringManagerCallbacks(ConstantStringManager::StaticInitialize, ConstantStringManager::StaticCleanup); + +ConstantStringManager& GetConstantStringManager () +{ + return *gConstantStringManager; +} -- cgit v1.1-26-g67d0