From e8c4d67b62af5e0c66b8c748f91b8e8377b904a2 Mon Sep 17 00:00:00 2001 From: JAJames Date: Sat, 2 Jul 2016 10:54:39 -0400 Subject: [PATCH] Reworked GenericCommand initialization; Plugin::OnGenericCommand is now called after subclass initialization --- Jupiter/GenericCommand.cpp | 5 ----- Jupiter/GenericCommand.h | 10 ++++++++-- Release/Jupiter.lib | Bin 323784 -> 323784 bytes 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/Jupiter/GenericCommand.cpp b/Jupiter/GenericCommand.cpp index f63ce27..c6aa817 100644 --- a/Jupiter/GenericCommand.cpp +++ b/Jupiter/GenericCommand.cpp @@ -32,12 +32,7 @@ Jupiter::GenericCommandNamespace &Jupiter::g_generic_commands = o_generic_comman Jupiter::GenericCommand::GenericCommand() { if (&o_generic_commands != this) - { Jupiter::GenericCommand::setNamespace(o_generic_commands); - - for (size_t index = 0; index != Jupiter::plugins->size(); ++index) - Jupiter::plugins->get(index)->OnGenericCommandAdd(*this); - } } Jupiter::GenericCommand::~GenericCommand() diff --git a/Jupiter/GenericCommand.h b/Jupiter/GenericCommand.h index a9523a9..e3be25c 100644 --- a/Jupiter/GenericCommand.h +++ b/Jupiter/GenericCommand.h @@ -180,8 +180,14 @@ class CLASS : public Jupiter::GenericCommand { \ /** Instantiates a generic command. */ #define GENERIC_COMMAND_INIT(CLASS) \ - CLASS CLASS :: instance = CLASS (); \ - CLASS & CLASS ## _instance = CLASS :: instance; +class CLASS ## _Init : public CLASS { \ +public: \ + CLASS ## _Init() { \ + for (size_t index = 0; index != Jupiter::plugins->size(); ++index) \ + Jupiter::plugins->get(index)->OnGenericCommandAdd(*this); \ + } }; \ + CLASS ## _Init CLASS ## _instance = CLASS ## _Init (); \ + CLASS & CLASS :: instance = CLASS ## _instance; /** Re-enable warnings */ #if defined _MSC_VER diff --git a/Release/Jupiter.lib b/Release/Jupiter.lib index a79dd6e8ec6de0ef983e0d261800f25f4464a87f..0b3098a3a67484a91b42d5c41f6a767a163b8648 100644 GIT binary patch delta 22229 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 CREbdl delta 22229 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 D!fs`%