From a3774084b29238a0bfb25d62c7c0ff154d680364 Mon Sep 17 00:00:00 2001 From: Claus Date: Wed, 3 Feb 2021 11:41:36 +0800 Subject: [PATCH] =?UTF-8?q?fix=20wrapper=E9=9D=9E=E5=94=AF=E4=B8=80?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- stub-ext/stub-shadow.cpp | 31 +++++++++++++++++++++++++++++++ stub-ext/stub-shadow.h | 25 ++++++------------------- 2 files changed, 37 insertions(+), 19 deletions(-) create mode 100644 stub-ext/stub-shadow.cpp diff --git a/stub-ext/stub-shadow.cpp b/stub-ext/stub-shadow.cpp new file mode 100644 index 0000000..d49ede2 --- /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 eca019a..ec2044a 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); } -- Gitee