lUInt32 LVCssSelector::getHash() { lUInt32 hash = 0; lUInt32 nextHash = 0; if (_next) nextHash = _next->getHash(); for (LVCssSelectorRule * p = _rules; p; p = p->getNext()) { lUInt32 ruleHash = p->getHash(); hash = hash * 31 + ruleHash; } hash = hash * 31 + nextHash; if (!_decl.isNull()) hash = hash * 31 + _decl->getHash(); return hash; }
bool LVCssSelector::check( const ldomNode * node ) const { // check main Id if (_id!=0 && node->getNodeId() != _id) return false; if (!_rules) return true; // check additional rules const ldomNode * n = node; LVCssSelectorRule * rule = _rules; do { if ( !rule->check(n) ) return false; rule = rule->getNext(); } while (rule!=NULL); return true; }