From 6e8d2bf09dbc349df5e2d2094a83a60c6309b76b Mon Sep 17 00:00:00 2001 From: Adam Date: Fri, 1 Nov 2013 05:19:48 -0400 Subject: [PATCH] Attempt #3 --- include/anope.h | 17 ++--------------- 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 inline T convertTo(const Anope::string &s, bool failIfLefto */ #ifdef DEBUG_BUILD # include - -template inline T anope_dynamic_static_cast(O* ptr) +template inline T anope_dynamic_static_cast(O ptr) { T ret = dynamic_cast(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 inline T anope_dynamic_static_cast(O& ref) -{ - try - { - return dynamic_cast(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 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(other).level; + return this->level > anope_dynamic_static_cast(&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(other).level; + return this->level < anope_dynamic_static_cast(&other)->level; } };