From 72bd94e1414fe78518245ae523cceb99c4def349 Mon Sep 17 00:00:00 2001 From: Ichthyostega Date: Mon, 30 Sep 2013 00:58:39 +0200 Subject: [PATCH] bughunt: replace the ConfigResolver with a direct instantiation of Singleton -> MISS thus not lib::Singleton is the culprit, it must be lib::SingletonSubclass --- research/clang-static-init-1.cpp | 8 ++++---- research/clang-static-init-2.cpp | 8 ++++---- research/clang-static-init.hpp | 7 +++++-- 3 files changed, 13 insertions(+), 10 deletions(-) diff --git a/research/clang-static-init-1.cpp b/research/clang-static-init-1.cpp index 8b8cbcb7e..366b53a83 100644 --- a/research/clang-static-init-1.cpp +++ b/research/clang-static-init-1.cpp @@ -1,25 +1,25 @@ #include "lib/test/run.hpp" -#include "proc/config-resolver.hpp" #include "clang-static-init.hpp" #include -using proc::ConfigResolver; using ::test::Test; using std::cout; using std::endl; +using namespace test; int main (int, char**) { cout << "\n.gulp.\n"; - ConfigResolver& ref1 = ConfigResolver::instance(); + Factory fab1; + Subject& ref1 = fab1(); - ConfigResolver& sub2 = test::fabricate(); + Subject& sub2 = test::fabricate(); cout << "sub1="<< &ref1 << " sub2="<< &sub2 <<"\n"; diff --git a/research/clang-static-init-2.cpp b/research/clang-static-init-2.cpp index 2bf169019..b9a95f1b2 100644 --- a/research/clang-static-init-2.cpp +++ b/research/clang-static-init-2.cpp @@ -3,7 +3,6 @@ #include -using proc::ConfigResolver; using std::cout; using std::endl; @@ -21,14 +20,15 @@ namespace test { namespace { - Holder fab2; +// Holder fab2; + Factory fab2; } - ConfigResolver& + Subject& fabricate() { - return ConfigResolver::instance(); + return fab2(); } diff --git a/research/clang-static-init.hpp b/research/clang-static-init.hpp index 65d0a6ef7..6a0b13da9 100644 --- a/research/clang-static-init.hpp +++ b/research/clang-static-init.hpp @@ -1,7 +1,8 @@ #include "lib/error.hpp" -#include "proc/config-resolver.hpp" +#include "lib/singleton-subclass.hpp" + namespace test { @@ -33,8 +34,10 @@ namespace test { }; + typedef lib::Singleton Factory; - proc::ConfigResolver& fabricate(); + + Subject& fabricate();