diff --git a/stub-ext/stub-shadow.cpp b/stub-ext/stub-shadow.cpp new file mode 100644 index 0000000000000000000000000000000000000000..d49ede2c24f5de29c93bab26aca25c1cd12d4d09 --- /dev/null +++ b/stub-ext/stub-shadow.cpp @@ -0,0 +1,31 @@ +#include "stub-shadow.h" + +namespace stub_ext { + +WrapperMap stub_wrappers; + +Wrapper::Wrapper() +{ + +} + +Wrapper::~Wrapper() +{ + +} + +void freeWrapper(Wrapper *wrapper) +{ + if (!wrapper) + return; + + for (auto iter = stub_wrappers.begin(); iter != stub_wrappers.end();) { + if (iter->second == wrapper) + iter = stub_wrappers.erase(iter); + else + ++iter; + } + + delete wrapper; +} +} diff --git a/stub-ext/stub-shadow.h b/stub-ext/stub-shadow.h index eca019a54882a680b1f4ac2ebb9399e152fb4e21..ec2044ab400f8b30d6ebb8a7a296589e81ffac89 100644 --- a/stub-ext/stub-shadow.h +++ b/stub-ext/stub-shadow.h @@ -37,10 +37,13 @@ namespace stub_ext { class Wrapper { public: - Wrapper(){} - virtual ~Wrapper(){} + Wrapper(); + virtual ~Wrapper(); }; +typedef std::unordered_map WrapperMap; +extern WrapperMap stub_wrappers; + template class LamdaWrapper : public Wrapper { @@ -94,9 +97,6 @@ struct LamdaCaller } }; - -static std::unordered_map stub_wrappers; - template struct FuncShadow { @@ -164,20 +164,7 @@ typename FuncShadow::Shadow depictShadow(Wrapper **wrapper, Func fu return shadow; } -static void freeWrapper(Wrapper *wrapper) -{ - if (!wrapper) - return; - - for (auto iter = stub_wrappers.begin(); iter != stub_wrappers.end();) { - if (iter->second == wrapper) - iter = stub_wrappers.erase(iter); - else - ++iter; - } - - delete wrapper; -} +void freeWrapper(Wrapper *wrapper); }