- for (Signature::const_iterator it = m_sig.begin();
- value != 0 && it != m_sig.end(); ++it) {
- Q_ASSERT(it->second);
- if ((value & it->second) == it->second) {
+ for (Signature::const_iterator it = m_sig.begin(); it != m_sig.end(); ++it) {
+ Q_ASSERT(it->second || first);
+ if ((it->second && (value & it->second) == it->second) ||
+ (!it->second && value == 0)) {