From e820e1af0d01011dbe9d91d2971cc3518f7f3d42 Mon Sep 17 00:00:00 2001 From: Adam Date: Sat, 28 Aug 2010 20:56:45 -0400 Subject: Properly store our clients internal channel status's and burst them if needed. Also made Flag::HasFlag use test() instead of operator[] to catch errors, and fixed an out of bounds access to a Flags bitset causing crashes on some systems. --- include/services.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'include/services.h') diff --git a/include/services.h b/include/services.h index f8f37be6e..4702dcff1 100644 --- a/include/services.h +++ b/include/services.h @@ -301,7 +301,7 @@ template inline T debug_cast(O ptr) { #ifdef DEBUG_BUILD T ret = dynamic_cast(ptr); - if (ret == NULL) + if (ptr != NULL && ret == NULL) throw CoreException(Anope::string("debug_cast<") + typeid(T).name() + ">(" + typeid(O).name() + ") fail"); return ret; #else @@ -342,7 +342,7 @@ template class Flags */ bool HasFlag(T Value) const { - return Flag_Values[Value]; + return Flag_Values.test(Value); } /** Check how many flags are set -- cgit