void CounterNode::recount() { for (CounterNode* node = this; node; node = node->m_nextSibling) { int oldCount = node->m_countInParent; int newCount = node->computeCountInParent(); if (oldCount == newCount) break; node->m_countInParent = newCount; node->resetThisAndDescendantsLayoutObjects(); } }