diff options
-rw-r--r-- | include/anope.h | 17 | ||||
-rw-r--r-- | modules/commands/cs_access.cpp | 4 |
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; } }; |