From a4374fdcbc641b5789fed9227577a6500fb43c31 Mon Sep 17 00:00:00 2001 From: Alexander Larsson Date: Fri, 9 Nov 2012 09:05:47 +0100 Subject: [PATCH] Fix cnp bug in _gtk_bitmask_intersects We need to use the allocated codepath if *any* argument is allocated, not if one arg is not allocated. This bug caused unnecessary calls to _gtk_bitmask_is_allocated, as well as return completely wrong result if both bitmask are allocated. (cherry picked from commit 77912a65e2aa6eb9cfee994fa93bbfbc6b9f8538) --- gtk/gtkbitmaskprivateimpl.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gtk/gtkbitmaskprivateimpl.h b/gtk/gtkbitmaskprivateimpl.h index 0dea65abe7..c46fa9622c 100644 --- a/gtk/gtkbitmaskprivateimpl.h +++ b/gtk/gtkbitmaskprivateimpl.h @@ -159,8 +159,8 @@ static inline gboolean _gtk_bitmask_intersects (const GtkBitmask *mask, const GtkBitmask *other) { - if (!_gtk_bitmask_is_allocated (mask) || - !_gtk_bitmask_is_allocated (other)) + if (_gtk_bitmask_is_allocated (mask) || + _gtk_bitmask_is_allocated (other)) return _gtk_allocated_bitmask_intersects (mask, other); else return _gtk_bitmask_to_bits (mask) & _gtk_bitmask_to_bits (other);