summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/modules.h4
-rw-r--r--include/services.h2
2 files changed, 4 insertions, 2 deletions
diff --git a/include/modules.h b/include/modules.h
index f76a1f58a..600b3ce8c 100644
--- a/include/modules.h
+++ b/include/modules.h
@@ -1219,7 +1219,7 @@ class CallBack : public Timer
}
};
-template<typename T>
+template<typename T, typename U = T>
class service_reference : public dynamic_reference<T>
{
Anope::string name;
@@ -1238,7 +1238,7 @@ class service_reference : public dynamic_reference<T>
}
if (!this->ref)
{
- this->ref = Service<T>::FindService(this->name);
+ this->ref = static_cast<T *>(Service<U>::FindService(this->name));
if (this->ref)
this->ref->AddReference(this);
}
diff --git a/include/services.h b/include/services.h
index 47e9b8940..5b5cf46bb 100644
--- a/include/services.h
+++ b/include/services.h
@@ -396,6 +396,8 @@ template<typename T> class CoreExport Service : public Base
};
template<typename T> Anope::map<T *> Service<T>::services;
+template class Service<Base>;
+
#include "sockets.h"
#include "socketengine.h"
#include "extensible.h"