From eefa72afa1978a9dea10f5b1833fcc8f58a3468e Mon Sep 17 00:00:00 2001 From: Thierry Crozat Date: Mon, 3 Jul 2017 18:59:12 +0100 Subject: COMMON: Change way the Singleton instances are instantiated This fixes tons of warnings with clang from a recent xcode version on macOS (and possibly other systems) complaining that an instantiation of _singleton is required but no definition is available. --- backends/cloud/cloudmanager.cpp | 5 ----- backends/fs/ds/ds-fs-factory.cpp | 3 --- backends/fs/ps2/ps2-fs-factory.cpp | 4 ---- backends/fs/psp/psp-fs-factory.cpp | 4 ---- backends/fs/wii/wii-fs-factory.cpp | 4 ---- backends/graphics/opengl/shader.cpp | 4 ---- backends/networking/curl/connectionmanager.cpp | 6 ------ backends/networking/sdl_net/localwebserver.cpp | 3 --- backends/platform/psp/display_manager.cpp | 4 ---- backends/platform/psp/powerman.cpp | 4 ---- backends/platform/psp/rtc.cpp | 3 --- backends/plugins/elf/memory-manager.cpp | 4 ---- backends/plugins/elf/shorts-segment-manager.cpp | 4 ---- base/plugins.cpp | 8 -------- common/archive.cpp | 2 -- common/config-manager.cpp | 2 -- common/coroutines.cpp | 2 -- common/debug.cpp | 2 -- common/osd_message_queue.cpp | 2 -- common/singleton.h | 9 +-------- common/translation.cpp | 2 -- engines/engine.cpp | 4 ---- engines/lure/sound.cpp | 4 ---- engines/pegasus/gamestate.cpp | 4 ---- engines/pegasus/input.cpp | 4 ---- engines/sword25/gfx/animationtemplateregistry.cpp | 4 ---- engines/sword25/math/regionregistry.cpp | 4 ---- engines/sword25/sword25.cpp | 3 --- engines/testbed/config-params.cpp | 4 ---- engines/wintermute/base/base_engine.cpp | 3 --- graphics/cursorman.cpp | 4 ---- graphics/fontman.cpp | 4 ---- graphics/fonts/ttf.cpp | 4 ---- graphics/yuv_to_rgb.cpp | 4 ---- gui/EventRecorder.cpp | 4 ---- gui/gui-manager.cpp | 4 ---- 36 files changed, 1 insertion(+), 138 deletions(-) diff --git a/backends/cloud/cloudmanager.cpp b/backends/cloud/cloudmanager.cpp index 5519e4baab..549926881d 100644 --- a/backends/cloud/cloudmanager.cpp +++ b/backends/cloud/cloudmanager.cpp @@ -32,11 +32,6 @@ #include "backends/networking/sdl_net/localwebserver.h" #endif -namespace Common { - -DECLARE_SINGLETON(Cloud::CloudManager); - -} namespace Cloud { diff --git a/backends/fs/ds/ds-fs-factory.cpp b/backends/fs/ds/ds-fs-factory.cpp index 98c522f1d6..e99033eebd 100644 --- a/backends/fs/ds/ds-fs-factory.cpp +++ b/backends/fs/ds/ds-fs-factory.cpp @@ -28,9 +28,6 @@ #include "backends/fs/ds/ds-fs.h" #include "dsmain.h" //for the isGBAMPAvailable() function -namespace Common { -DECLARE_SINGLETON(DSFilesystemFactory); -} AbstractFSNode *DSFilesystemFactory::makeRootFileNode() const { if (DS::isGBAMPAvailable()) { diff --git a/backends/fs/ps2/ps2-fs-factory.cpp b/backends/fs/ps2/ps2-fs-factory.cpp index 9c12d27a6e..93525eba1a 100644 --- a/backends/fs/ps2/ps2-fs-factory.cpp +++ b/backends/fs/ps2/ps2-fs-factory.cpp @@ -28,10 +28,6 @@ #include "backends/fs/ps2/ps2-fs-factory.h" #include "backends/fs/ps2/ps2-fs.h" -namespace Common { -DECLARE_SINGLETON(Ps2FilesystemFactory); -} - AbstractFSNode *Ps2FilesystemFactory::makeRootFileNode() const { return new Ps2FilesystemNode(); } diff --git a/backends/fs/psp/psp-fs-factory.cpp b/backends/fs/psp/psp-fs-factory.cpp index 303ea242c5..fa92bf42d1 100644 --- a/backends/fs/psp/psp-fs-factory.cpp +++ b/backends/fs/psp/psp-fs-factory.cpp @@ -44,10 +44,6 @@ #include -namespace Common { -DECLARE_SINGLETON(PSPFilesystemFactory); -} - AbstractFSNode *PSPFilesystemFactory::makeRootFileNode() const { return new PSPFilesystemNode(); } diff --git a/backends/fs/wii/wii-fs-factory.cpp b/backends/fs/wii/wii-fs-factory.cpp index f234c1e300..1c95e4e42f 100644 --- a/backends/fs/wii/wii-fs-factory.cpp +++ b/backends/fs/wii/wii-fs-factory.cpp @@ -43,10 +43,6 @@ #include #endif -namespace Common { -DECLARE_SINGLETON(WiiFilesystemFactory); -} - WiiFilesystemFactory::WiiFilesystemFactory() : _dvdMounted(false), _smbMounted(false), diff --git a/backends/graphics/opengl/shader.cpp b/backends/graphics/opengl/shader.cpp index 0b4c677d70..b405f3d102 100644 --- a/backends/graphics/opengl/shader.cpp +++ b/backends/graphics/opengl/shader.cpp @@ -27,10 +27,6 @@ #include "common/textconsole.h" #include "common/util.h" -namespace Common { -DECLARE_SINGLETON(OpenGL::ShaderManager); -} - namespace OpenGL { namespace { diff --git a/backends/networking/curl/connectionmanager.cpp b/backends/networking/curl/connectionmanager.cpp index d8662ab78d..dee4ece742 100644 --- a/backends/networking/curl/connectionmanager.cpp +++ b/backends/networking/curl/connectionmanager.cpp @@ -29,12 +29,6 @@ #include "common/timer.h" #include -namespace Common { - -DECLARE_SINGLETON(Networking::ConnectionManager); - -} - namespace Networking { ConnectionManager::ConnectionManager(): _multi(0), _timerStarted(false), _frame(0) { diff --git a/backends/networking/sdl_net/localwebserver.cpp b/backends/networking/sdl_net/localwebserver.cpp index 836b90a244..558bffec26 100644 --- a/backends/networking/sdl_net/localwebserver.cpp +++ b/backends/networking/sdl_net/localwebserver.cpp @@ -51,9 +51,6 @@ namespace Common { class MemoryReadWriteStream; - -DECLARE_SINGLETON(Networking::LocalWebserver); - } namespace Networking { diff --git a/backends/platform/psp/display_manager.cpp b/backends/platform/psp/display_manager.cpp index 2e995c809e..ffd37414be 100644 --- a/backends/platform/psp/display_manager.cpp +++ b/backends/platform/psp/display_manager.cpp @@ -62,10 +62,6 @@ const OSystem::GraphicsMode DisplayManager::_supportedModes[] = { // Class VramAllocator ----------------------------------- -namespace Common { -DECLARE_SINGLETON(VramAllocator); -} - //#define __PSP_DEBUG_FUNCS__ /* For debugging the stack */ //#define __PSP_DEBUG_PRINT__ diff --git a/backends/platform/psp/powerman.cpp b/backends/platform/psp/powerman.cpp index 3cd663e3c7..4b415ef50e 100644 --- a/backends/platform/psp/powerman.cpp +++ b/backends/platform/psp/powerman.cpp @@ -30,10 +30,6 @@ //#define __PSP_DEBUG_PRINT__ #include "backends/platform/psp/trace.h" -namespace Common { -DECLARE_SINGLETON(PowerManager); -} - // Function to debug the Power Manager (we have no output to screen) inline void PowerManager::debugPM() { PSP_DEBUG_PRINT("PM status[%d]. Listcount[%d]. CriticalCount[%d]. ThreadId[%x]. Error[%d]\n", diff --git a/backends/platform/psp/rtc.cpp b/backends/platform/psp/rtc.cpp index d01bd8f83a..67ad36c334 100644 --- a/backends/platform/psp/rtc.cpp +++ b/backends/platform/psp/rtc.cpp @@ -34,9 +34,6 @@ // Class PspRtc --------------------------------------------------------------- -namespace Common { -DECLARE_SINGLETON(PspRtc); -} void PspRtc::init() { // init our starting ticks uint32 ticks[2]; diff --git a/backends/plugins/elf/memory-manager.cpp b/backends/plugins/elf/memory-manager.cpp index 5014718ae8..7be79434bf 100644 --- a/backends/plugins/elf/memory-manager.cpp +++ b/backends/plugins/elf/memory-manager.cpp @@ -29,10 +29,6 @@ #include "common/util.h" #include -namespace Common { -DECLARE_SINGLETON(ELFMemoryManager); -} - ELFMemoryManager::ELFMemoryManager() : _heap(0), _heapSize(0), _heapAlign(0), _trackAllocs(false), _measuredSize(0), _measuredAlign(0), diff --git a/backends/plugins/elf/shorts-segment-manager.cpp b/backends/plugins/elf/shorts-segment-manager.cpp index 4fa03cc79c..2af6c10e0f 100644 --- a/backends/plugins/elf/shorts-segment-manager.cpp +++ b/backends/plugins/elf/shorts-segment-manager.cpp @@ -33,10 +33,6 @@ extern char __plugin_hole_start; // Indicates start of hole in program file for extern char __plugin_hole_end; // Indicates end of hole in program file extern char _gp[]; // Value of gp register -namespace Common { -DECLARE_SINGLETON(ShortSegmentManager); // For singleton -} - ShortSegmentManager::ShortSegmentManager() { _shortsStart = &__plugin_hole_start ; //shorts segment begins at the plugin hole we made when linking _shortsEnd = &__plugin_hole_end; //and ends at the end of that hole. diff --git a/base/plugins.cpp b/base/plugins.cpp index 39aaf2f73e..2414102f59 100644 --- a/base/plugins.cpp +++ b/base/plugins.cpp @@ -446,10 +446,6 @@ void PluginManager::addToPluginsInMemList(Plugin *plugin) { #include "engines/metaengine.h" -namespace Common { -DECLARE_SINGLETON(EngineManager); -} - /** * This function works for both cached and uncached PluginManagers. * For the cached version, most of the logic here will short circuit. @@ -539,10 +535,6 @@ const EnginePlugin::List &EngineManager::getPlugins() const { #include "audio/musicplugin.h" -namespace Common { -DECLARE_SINGLETON(MusicManager); -} - const MusicPlugin::List &MusicManager::getPlugins() const { return (const MusicPlugin::List &)PluginManager::instance().getPlugins(PLUGIN_TYPE_MUSIC); } diff --git a/common/archive.cpp b/common/archive.cpp index 5a339900b6..07d363a9a8 100644 --- a/common/archive.cpp +++ b/common/archive.cpp @@ -284,6 +284,4 @@ void SearchManager::clear() { addDirectory(".", ".", -2); } -DECLARE_SINGLETON(SearchManager); - } // namespace Common diff --git a/common/config-manager.cpp b/common/config-manager.cpp index fdd0c6f033..91ba3c867b 100644 --- a/common/config-manager.cpp +++ b/common/config-manager.cpp @@ -36,8 +36,6 @@ static bool isValidDomainName(const Common::String &domName) { namespace Common { -DECLARE_SINGLETON(ConfigManager); - char const *const ConfigManager::kApplicationDomain = "scummvm"; char const *const ConfigManager::kTransientDomain = "__TRANSIENT"; diff --git a/common/coroutines.cpp b/common/coroutines.cpp index 248777febd..54e53ff7d3 100644 --- a/common/coroutines.cpp +++ b/common/coroutines.cpp @@ -33,8 +33,6 @@ namespace Common { /** Helper null context instance */ CoroContext nullContext = NULL; -DECLARE_SINGLETON(CoroutineScheduler); - #ifdef COROUTINE_DEBUG namespace { /** Count of active coroutines */ diff --git a/common/debug.cpp b/common/debug.cpp index 5db8990db8..94517afab6 100644 --- a/common/debug.cpp +++ b/common/debug.cpp @@ -34,8 +34,6 @@ bool gDebugChannelsOnly = false; namespace Common { -DECLARE_SINGLETON(DebugManager); - namespace { struct DebugLevelComperator { diff --git a/common/osd_message_queue.cpp b/common/osd_message_queue.cpp index b8abf18bb5..3355295bbe 100644 --- a/common/osd_message_queue.cpp +++ b/common/osd_message_queue.cpp @@ -24,8 +24,6 @@ #include "common/system.h" namespace Common { - -DECLARE_SINGLETON(OSDMessageQueue); OSDMessageQueue::OSDMessageQueue() : _lastUpdate(0) { } diff --git a/common/singleton.h b/common/singleton.h index 9bcd590183..6c36d7a37d 100644 --- a/common/singleton.h +++ b/common/singleton.h @@ -88,14 +88,7 @@ protected: static T *_singleton; }; -/** - * Note that you need to use this macro from the Common namespace. - * - * This is because C++ requires initial explicit specialization - * to be placed in the same namespace as the template. - */ -#define DECLARE_SINGLETON(T) \ - template<> T *Singleton::_singleton = 0 +template T *Singleton::_singleton = 0; } // End of namespace Common diff --git a/common/translation.cpp b/common/translation.cpp index 01665bf876..04df9d213d 100644 --- a/common/translation.cpp +++ b/common/translation.cpp @@ -40,8 +40,6 @@ namespace Common { -DECLARE_SINGLETON(TranslationManager); - bool operator<(const TLanguage &l, const TLanguage &r) { return strcmp(l.name, r.name) < 0; } diff --git a/engines/engine.cpp b/engines/engine.cpp index bb51e77f0d..2edb77b8f2 100644 --- a/engines/engine.cpp +++ b/engines/engine.cpp @@ -133,10 +133,6 @@ bool ChainedGamesManager::pop(Common::String &target, int &slot) { return true; } -namespace Common { -DECLARE_SINGLETON(ChainedGamesManager); -} - Engine::Engine(OSystem *syst) : _system(syst), _mixer(_system->getMixer()), diff --git a/engines/lure/sound.cpp b/engines/lure/sound.cpp index bea0dbf9f4..4cb6c44724 100644 --- a/engines/lure/sound.cpp +++ b/engines/lure/sound.cpp @@ -31,10 +31,6 @@ #include "common/endian.h" #include "audio/midiparser.h" -namespace Common { -DECLARE_SINGLETON(Lure::SoundManager); -} - namespace Lure { //#define SOUND_CROP_CHANNELS diff --git a/engines/pegasus/gamestate.cpp b/engines/pegasus/gamestate.cpp index dfb4f1cd5b..877aeffa1b 100644 --- a/engines/pegasus/gamestate.cpp +++ b/engines/pegasus/gamestate.cpp @@ -30,10 +30,6 @@ #include "pegasus/gamestate.h" #include "pegasus/scoring.h" -namespace Common { -DECLARE_SINGLETON(Pegasus::GameStateManager); -} - namespace Pegasus { Common::Error GameStateManager::writeGameState(Common::WriteStream *stream) { diff --git a/engines/pegasus/input.cpp b/engines/pegasus/input.cpp index f4834037d9..0a29a43008 100644 --- a/engines/pegasus/input.cpp +++ b/engines/pegasus/input.cpp @@ -30,10 +30,6 @@ #include "pegasus/input.h" #include "pegasus/pegasus.h" -namespace Common { -DECLARE_SINGLETON(Pegasus::InputDeviceManager); -} - namespace Pegasus { InputDeviceManager::InputDeviceManager() { diff --git a/engines/sword25/gfx/animationtemplateregistry.cpp b/engines/sword25/gfx/animationtemplateregistry.cpp index 4783a314f4..875483d66f 100644 --- a/engines/sword25/gfx/animationtemplateregistry.cpp +++ b/engines/sword25/gfx/animationtemplateregistry.cpp @@ -34,10 +34,6 @@ #include "sword25/gfx/animationtemplateregistry.h" #include "sword25/gfx/animationtemplate.h" -namespace Common { -DECLARE_SINGLETON(Sword25::AnimationTemplateRegistry); -} - namespace Sword25 { bool AnimationTemplateRegistry::persist(OutputPersistenceBlock &writer) { diff --git a/engines/sword25/math/regionregistry.cpp b/engines/sword25/math/regionregistry.cpp index 35a5fb4b88..bfa82bc474 100644 --- a/engines/sword25/math/regionregistry.cpp +++ b/engines/sword25/math/regionregistry.cpp @@ -34,10 +34,6 @@ #include "sword25/math/regionregistry.h" #include "sword25/math/region.h" -namespace Common { -DECLARE_SINGLETON(Sword25::RegionRegistry); -} - namespace Sword25 { bool RegionRegistry::persist(OutputPersistenceBlock &writer) { diff --git a/engines/sword25/sword25.cpp b/engines/sword25/sword25.cpp index b6f2641714..1e3a68847a 100644 --- a/engines/sword25/sword25.cpp +++ b/engines/sword25/sword25.cpp @@ -50,9 +50,6 @@ #include "sword25/gfx/animationtemplateregistry.h" // Needed so we can destroy the singleton #include "sword25/gfx/renderobjectregistry.h" // Needed so we can destroy the singleton -namespace Common { -DECLARE_SINGLETON(Sword25::RenderObjectRegistry); -} #include "sword25/math/regionregistry.h" // Needed so we can destroy the singleton namespace Sword25 { diff --git a/engines/testbed/config-params.cpp b/engines/testbed/config-params.cpp index 1aa97168c1..3ec47fbe1b 100644 --- a/engines/testbed/config-params.cpp +++ b/engines/testbed/config-params.cpp @@ -25,10 +25,6 @@ #include "testbed/config-params.h" -namespace Common { -DECLARE_SINGLETON(Testbed::ConfigParams); -} - namespace Testbed { ConfigParams::ConfigParams() { diff --git a/engines/wintermute/base/base_engine.cpp b/engines/wintermute/base/base_engine.cpp index 4ce334aceb..28bdb53e3b 100644 --- a/engines/wintermute/base/base_engine.cpp +++ b/engines/wintermute/base/base_engine.cpp @@ -32,9 +32,6 @@ #include "engines/wintermute/wintermute.h" #include "engines/wintermute/system/sys_class_registry.h" #include "common/system.h" -namespace Common { -DECLARE_SINGLETON(Wintermute::BaseEngine); -} namespace Wintermute { diff --git a/graphics/cursorman.cpp b/graphics/cursorman.cpp index 5fcd2a3602..53e13da9a1 100644 --- a/graphics/cursorman.cpp +++ b/graphics/cursorman.cpp @@ -25,10 +25,6 @@ #include "common/system.h" #include "common/stack.h" -namespace Common { -DECLARE_SINGLETON(Graphics::CursorManager); -} - namespace Graphics { CursorManager::~CursorManager() { diff --git a/graphics/fontman.cpp b/graphics/fontman.cpp index 5cf52416cf..bb3ee03330 100644 --- a/graphics/fontman.cpp +++ b/graphics/fontman.cpp @@ -26,10 +26,6 @@ #include "common/translation.h" -namespace Common { -DECLARE_SINGLETON(Graphics::FontManager); -} - namespace Graphics { FORWARD_DECLARE_FONT(g_sysfont); diff --git a/graphics/fonts/ttf.cpp b/graphics/fonts/ttf.cpp index 76b7f731be..cb9520bb86 100644 --- a/graphics/fonts/ttf.cpp +++ b/graphics/fonts/ttf.cpp @@ -668,9 +668,5 @@ Font *loadTTFFont(Common::SeekableReadStream &stream, int size, TTFSizeMode size } // End of namespace Graphics -namespace Common { -DECLARE_SINGLETON(Graphics::TTFLibrary); -} // End of namespace Common - #endif diff --git a/graphics/yuv_to_rgb.cpp b/graphics/yuv_to_rgb.cpp index 2a485fa664..99cd208ec0 100644 --- a/graphics/yuv_to_rgb.cpp +++ b/graphics/yuv_to_rgb.cpp @@ -86,10 +86,6 @@ #include "graphics/surface.h" #include "graphics/yuv_to_rgb.h" -namespace Common { -DECLARE_SINGLETON(Graphics::YUVToRGBManager); -} - namespace Graphics { class YUVToRGBLookup { diff --git a/gui/EventRecorder.cpp b/gui/EventRecorder.cpp index 3f91cfa259..ccf051f6d8 100644 --- a/gui/EventRecorder.cpp +++ b/gui/EventRecorder.cpp @@ -25,10 +25,6 @@ #ifdef ENABLE_EVENTRECORDER -namespace Common { -DECLARE_SINGLETON(GUI::EventRecorder); -} - #include "common/debug-channels.h" #include "backends/timer/sdl/sdl-timer.h" #include "backends/mixer/sdl/sdl-mixer.h" diff --git a/gui/gui-manager.cpp b/gui/gui-manager.cpp index 76f557711d..12a0320a8c 100644 --- a/gui/gui-manager.cpp +++ b/gui/gui-manager.cpp @@ -41,10 +41,6 @@ #include "graphics/cursorman.h" -namespace Common { -DECLARE_SINGLETON(GUI::GuiManager); -} - namespace GUI { enum { -- cgit v1.2.3