From 1a10ccc5e551857fc3a7c049df99547ccfe3f72b Mon Sep 17 00:00:00 2001 From: Gabe Black Date: Mon, 3 Jan 2011 15:31:20 -0500 Subject: [PATCH] RefCount: Fix reference counting pointer == and != with a T* on the left. These operators were expecting a const T& instead of a const T*, and were not being picked up and used by gcc in the right places as a result. Apparently no one used these operators before. A unit test which exposed these problems, verified the solution, and checks other basic functionality is on the way. --- src/base/refcnt.hh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/base/refcnt.hh b/src/base/refcnt.hh index 64224ca7f..b73183a1a 100644 --- a/src/base/refcnt.hh +++ b/src/base/refcnt.hh @@ -109,7 +109,7 @@ bool operator==(const RefCountingPtr &l, const T *r) { return l.get() == r; } template -bool operator==(const T &l, const RefCountingPtr &r) +bool operator==(const T *l, const RefCountingPtr &r) { return l == r.get(); } template @@ -121,7 +121,7 @@ bool operator!=(const RefCountingPtr &l, const T *r) { return l.get() != r; } template -bool operator!=(const T &l, const RefCountingPtr &r) +bool operator!=(const T *l, const RefCountingPtr &r) { return l != r.get(); } #endif // __BASE_REFCNT_HH__ -- 2.30.2