From 4fc2f7199e964ba5112ecdb2613c6fd5c2eee638 Mon Sep 17 00:00:00 2001 From: Attila Molnar Date: Sun, 18 Jan 2015 10:40:33 +0100 Subject: Specify which Extensible subclass an ExtensionItem is valid for --- src/base.cpp | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) (limited to 'src/base.cpp') diff --git a/src/base.cpp b/src/base.cpp index c131f4dae..0441217d1 100644 --- a/src/base.cpp +++ b/src/base.cpp @@ -89,7 +89,9 @@ ServiceProvider::~ServiceProvider() { } -ExtensionItem::ExtensionItem(const std::string& Key, Module* mod) : ServiceProvider(mod, Key, SERVICE_METADATA) +ExtensionItem::ExtensionItem(const std::string& Key, ExtensibleType exttype, Module* mod) + : ServiceProvider(mod, Key, SERVICE_METADATA) + , type(exttype) { } @@ -201,7 +203,8 @@ Extensible::~Extensible() ServerInstance->Logs->Log("CULLLIST", LOG_DEBUG, "Extensible destructor called without cull @%p", (void*)this); } -LocalExtItem::LocalExtItem(const std::string& Key, Module* mod) : ExtensionItem(Key, mod) +LocalExtItem::LocalExtItem(const std::string& Key, ExtensibleType exttype, Module* mod) + : ExtensionItem(Key, exttype, mod) { } @@ -218,8 +221,10 @@ void LocalExtItem::unserialize(SerializeFormat format, Extensible* container, co { } -LocalStringExt::LocalStringExt(const std::string& Key, Module* Owner) - : SimpleExtItem(Key, Owner) { } +LocalStringExt::LocalStringExt(const std::string& Key, ExtensibleType exttype, Module* Owner) + : SimpleExtItem(Key, exttype, Owner) +{ +} LocalStringExt::~LocalStringExt() { @@ -232,7 +237,8 @@ std::string LocalStringExt::serialize(SerializeFormat format, const Extensible* return ""; } -LocalIntExt::LocalIntExt(const std::string& Key, Module* mod) : LocalExtItem(Key, mod) +LocalIntExt::LocalIntExt(const std::string& Key, ExtensibleType exttype, Module* mod) + : LocalExtItem(Key, exttype, mod) { } @@ -264,7 +270,8 @@ void LocalIntExt::free(void*) { } -StringExtItem::StringExtItem(const std::string& Key, Module* mod) : ExtensionItem(Key, mod) +StringExtItem::StringExtItem(const std::string& Key, ExtensibleType exttype, Module* mod) + : ExtensionItem(Key, exttype, mod) { } -- cgit v1.3.1-10-gc9f91 From 38b22990eae47525f4e8064a29e585a89788ee58 Mon Sep 17 00:00:00 2001 From: Attila Molnar Date: Thu, 22 Jan 2015 12:12:41 +0100 Subject: Disable typeid() calls unless INSPIRCD_ENABLE_RTTI is defined --- src/base.cpp | 6 ++++++ src/cull_list.cpp | 6 ++++++ 2 files changed, 12 insertions(+) (limited to 'src/base.cpp') diff --git a/src/base.cpp b/src/base.cpp index c131f4dae..682899132 100644 --- a/src/base.cpp +++ b/src/base.cpp @@ -23,7 +23,9 @@ #include "inspircd.h" #include "base.h" #include +#ifdef INSPIRCD_ENABLE_RTTI #include +#endif classbase::classbase() { @@ -34,8 +36,12 @@ classbase::classbase() CullResult classbase::cull() { if (ServerInstance) +#ifdef INSPIRCD_ENABLE_RTTI ServerInstance->Logs->Log("CULLLIST", LOG_DEBUG, "classbase::-%s @%p", typeid(*this).name(), (void*)this); +#else + ServerInstance->Logs->Log("CULLLIST", LOG_DEBUG, "classbase::- @%p", (void*)this); +#endif return CullResult(); } diff --git a/src/cull_list.cpp b/src/cull_list.cpp index 5cbe3aef3..73f2def51 100644 --- a/src/cull_list.cpp +++ b/src/cull_list.cpp @@ -21,7 +21,9 @@ #include "inspircd.h" +#ifdef INSPIRCD_ENABLE_RTTI #include +#endif void CullList::Apply() { @@ -46,8 +48,12 @@ void CullList::Apply() classbase* c = list[i]; if (gone.insert(c).second) { +#ifdef INSPIRCD_ENABLE_RTTI ServerInstance->Logs->Log("CULLLIST", LOG_DEBUG, "Deleting %s @%p", typeid(*c).name(), (void*)c); +#else + ServerInstance->Logs->Log("CULLLIST", LOG_DEBUG, "Deleting @%p", (void*)c); +#endif c->cull(); queue.push_back(c); } -- cgit v1.3.1-10-gc9f91