aboutsummaryrefslogtreecommitdiffstats
path: root/src/inspircd.cpp
diff options
context:
space:
mode:
authorGravatar attilamolnar2013-04-04 22:09:21 +0200
committerGravatar attilamolnar2013-04-08 23:13:24 +0200
commit927937d6105d17fbcd8c85bbf185477d87264bc4 (patch)
treeef5ab7eb5c0bd6ebfce721b99e1464183a09a364 /src/inspircd.cpp
parentRemove OnAddBan and OnDelBan hooks (diff)
downloadinspircd++-927937d6105d17fbcd8c85bbf185477d87264bc4.tar.gz
inspircd++-927937d6105d17fbcd8c85bbf185477d87264bc4.tar.bz2
inspircd++-927937d6105d17fbcd8c85bbf185477d87264bc4.zip
Rework dynamic_reference management, introduce dynamic_reference_nocheck
New dynamic references are now resolved at construction and all of them are re-resolved when a relevant service is added or removed; resolution is no longer done in operator-> dynamic_reference_nocheck is a variant of dynamic_reference that does not check for value being null in operator-> / operator* dynamic_reference still throws an exception when used in this case Both kinds of dynamic references support .check(): an exception is thrown if this is called when value is null
Diffstat (limited to 'src/inspircd.cpp')
-rw-r--r--src/inspircd.cpp1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/inspircd.cpp b/src/inspircd.cpp
index cccf3fe89..b3c4ca27d 100644
--- a/src/inspircd.cpp
+++ b/src/inspircd.cpp
@@ -347,6 +347,7 @@ InspIRCd::InspIRCd(int argc, char** argv) :
this->SNO = new SnomaskManager;
this->BanCache = new BanCacheManager;
this->Modules = new ModuleManager();
+ dynamic_reference_base::reset_all();
this->stats = new serverstats();
this->Timers = new TimerManager;
this->Parser = new CommandParser;