From c0f52c3f48d48393071f099bf1f74f99f1ace6f7 Mon Sep 17 00:00:00 2001 From: Ilari Liusvaara Date: Sat, 13 Oct 2012 09:23:55 +0300 Subject: [PATCH] Move globalwrap.hpp to library/ --- include/{core => library}/globalwrap.hpp | 12 ++++++++++-- src/core/advdumper.cpp | 2 +- src/core/command.cpp | 2 +- src/core/dispatch.cpp | 2 +- src/core/keymapper.cpp | 2 +- src/core/settings.cpp | 2 +- src/lua/lua.cpp | 2 +- 7 files changed, 16 insertions(+), 8 deletions(-) rename include/{core => library}/globalwrap.hpp (61%) diff --git a/include/core/globalwrap.hpp b/include/library/globalwrap.hpp similarity index 61% rename from include/core/globalwrap.hpp rename to include/library/globalwrap.hpp index c1c0b760..09b125f9 100644 --- a/include/core/globalwrap.hpp +++ b/include/library/globalwrap.hpp @@ -1,5 +1,5 @@ -#ifndef _globalwrap__hpp__included__ -#define _globalwrap__hpp__included__ +#ifndef _library__globalwrap__hpp__included__ +#define _library__globalwrap__hpp__included__ /** * Wrapper for glboal/module-local objects accessable in global ctor context. @@ -8,6 +8,14 @@ template class globalwrap { public: +/** + * Ctor, forces the object to be constructed (to avoid races). + */ + globalwrap() throw(std::bad_alloc) + { + if(!storage) + storage = new T(); + } /** * Get the wrapped object. * diff --git a/src/core/advdumper.cpp b/src/core/advdumper.cpp index def7eed0..d06b14ed 100644 --- a/src/core/advdumper.cpp +++ b/src/core/advdumper.cpp @@ -1,7 +1,7 @@ #include "core/advdumper.hpp" #include "core/command.hpp" #include "core/dispatch.hpp" -#include "core/globalwrap.hpp" +#include "library/globalwrap.hpp" #include "lua/lua.hpp" #include "library/string.hpp" diff --git a/src/core/command.cpp b/src/core/command.cpp index 080a132d..0bd459e5 100644 --- a/src/core/command.cpp +++ b/src/core/command.cpp @@ -1,5 +1,5 @@ #include "core/command.hpp" -#include "core/globalwrap.hpp" +#include "library/globalwrap.hpp" #include "core/misc.hpp" #include "core/window.hpp" #include "library/minmax.hpp" diff --git a/src/core/dispatch.cpp b/src/core/dispatch.cpp index 4e1c40a1..fb7323cc 100644 --- a/src/core/dispatch.cpp +++ b/src/core/dispatch.cpp @@ -1,5 +1,5 @@ #include "core/dispatch.hpp" -#include "core/globalwrap.hpp" +#include "library/globalwrap.hpp" #include "core/misc.hpp" #include diff --git a/src/core/keymapper.cpp b/src/core/keymapper.cpp index c2f8924a..bd69673a 100644 --- a/src/core/keymapper.cpp +++ b/src/core/keymapper.cpp @@ -1,6 +1,6 @@ #include "core/command.hpp" #include "core/dispatch.hpp" -#include "core/globalwrap.hpp" +#include "library/globalwrap.hpp" #include "core/keymapper.hpp" #include "core/memorymanip.hpp" #include "core/misc.hpp" diff --git a/src/core/settings.cpp b/src/core/settings.cpp index 186fcd43..17b342a4 100644 --- a/src/core/settings.cpp +++ b/src/core/settings.cpp @@ -1,6 +1,6 @@ #include "core/command.hpp" #include "core/dispatch.hpp" -#include "core/globalwrap.hpp" +#include "library/globalwrap.hpp" #include "core/misc.hpp" #include "core/settings.hpp" #include "library/string.hpp" diff --git a/src/lua/lua.cpp b/src/lua/lua.cpp index 2db257ca..d2688174 100644 --- a/src/lua/lua.cpp +++ b/src/lua/lua.cpp @@ -1,5 +1,5 @@ #include "core/command.hpp" -#include "core/globalwrap.hpp" +#include "library/globalwrap.hpp" #include "lua/internal.hpp" #include "lua/lua.hpp" #include "lua/unsaferewind.hpp"