summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/anope.h17
-rw-r--r--modules/commands/cs_access.cpp4
2 files changed, 4 insertions, 17 deletions
diff --git a/include/anope.h b/include/anope.h
index 07ed29ebf..c96360810 100644
--- a/include/anope.h
+++ b/include/anope.h
@@ -762,26 +762,13 @@ template<typename T> inline T convertTo(const Anope::string &s, bool failIfLefto
*/
#ifdef DEBUG_BUILD
# include <typeinfo>
-
-template<typename T, typename O> inline T anope_dynamic_static_cast(O* ptr)
+template<typename T, typename O> inline T anope_dynamic_static_cast(O ptr)
{
T ret = dynamic_cast<T>(ptr);
if (ptr != NULL && ret == NULL)
- throw CoreException(Anope::string("anope_dynamic_static_cast<") + typeid(T).name() + ">(" + typeid(O*).name() + ") fail");
+ throw CoreException(Anope::string("anope_dynamic_static_cast<") + typeid(T).name() + ">(" + typeid(O).name() + ") fail");
return ret;
}
-
-template<typename T, typename O> inline T anope_dynamic_static_cast(O& ref)
-{
- try
- {
- return dynamic_cast<T>(ref);
- }
- catch (const std::bad_cast &ex)
- {
- throw CoreException(Anope::string("std::bad_cast from anope_dynamic_static_cast<") + typeid(T).name() + ">(" + typeid(O&).name() + "): " + ex.what());
- }
-}
#else
template<typename T, typename O> inline T anope_dynamic_static_cast(O ptr)
{
diff --git a/modules/commands/cs_access.cpp b/modules/commands/cs_access.cpp
index 9a6c0d886..e78bac824 100644
--- a/modules/commands/cs_access.cpp
+++ b/modules/commands/cs_access.cpp
@@ -49,7 +49,7 @@ class AccessChanAccess : public ChanAccess
if (this->provider != other.provider)
return ChanAccess::operator>(other);
else
- return this->level > anope_dynamic_static_cast<const AccessChanAccess &, const ChanAccess &>(other).level;
+ return this->level > anope_dynamic_static_cast<const AccessChanAccess *>(&other)->level;
}
bool operator<(const ChanAccess &other) const anope_override
@@ -57,7 +57,7 @@ class AccessChanAccess : public ChanAccess
if (this->provider != other.provider)
return ChanAccess::operator<(other);
else
- return this->level < anope_dynamic_static_cast<const AccessChanAccess &, const ChanAccess &>(other).level;
+ return this->level < anope_dynamic_static_cast<const AccessChanAccess *>(&other)->level;
}
};