| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) |
| 3 * (C) 2004-2005 Allan Sandfeld Jensen (kde@carewolf.com) | 3 * (C) 2004-2005 Allan Sandfeld Jensen (kde@carewolf.com) |
| 4 * Copyright (C) 2006, 2007 Nicholas Shanks (webkit@nickshanks.com) | 4 * Copyright (C) 2006, 2007 Nicholas Shanks (webkit@nickshanks.com) |
| 5 * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Apple Inc. All | 5 * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Apple Inc. All |
| 6 * rights reserved. | 6 * rights reserved. |
| 7 * Copyright (C) 2007 Alexey Proskuryakov <ap@webkit.org> | 7 * Copyright (C) 2007 Alexey Proskuryakov <ap@webkit.org> |
| 8 * Copyright (C) 2007, 2008 Eric Seidel <eric@webkit.org> | 8 * Copyright (C) 2007, 2008 Eric Seidel <eric@webkit.org> |
| 9 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. | 9 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. |
| 10 * (http://www.torchmobile.com/) | 10 * (http://www.torchmobile.com/) |
| (...skipping 332 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 343 for (size_t selectorIndex = 0; selectorIndex != kNotFound; | 343 for (size_t selectorIndex = 0; selectorIndex != kNotFound; |
| 344 selectorIndex = | 344 selectorIndex = |
| 345 rule->selectorList().indexOfNextSelectorAfter(selectorIndex)) | 345 rule->selectorList().indexOfNextSelectorAfter(selectorIndex)) |
| 346 addRule(rule, selectorIndex, addRuleFlags); | 346 addRule(rule, selectorIndex, addRuleFlags); |
| 347 } | 347 } |
| 348 | 348 |
| 349 void RuleSet::compactPendingRules(PendingRuleMap& pendingMap, | 349 void RuleSet::compactPendingRules(PendingRuleMap& pendingMap, |
| 350 CompactRuleMap& compactMap) { | 350 CompactRuleMap& compactMap) { |
| 351 for (auto& item : pendingMap) { | 351 for (auto& item : pendingMap) { |
| 352 HeapLinkedStack<RuleData>* pendingRules = item.value.release(); | 352 HeapLinkedStack<RuleData>* pendingRules = item.value.release(); |
| 353 // TODO(meade): crbug.com/694520 | |
| 354 CHECK(!item.key.isNull()); | |
| 355 CHECK(pendingRules); | |
| 356 CompactRuleMap::ValueType* compactRules = | 353 CompactRuleMap::ValueType* compactRules = |
| 357 compactMap.insert(item.key, nullptr).storedValue; | 354 compactMap.insert(item.key, nullptr).storedValue; |
| 358 // TODO(meade): crbug.com/694520 | |
| 359 CHECK(compactRules); | |
| 360 | 355 |
| 361 HeapTerminatedArrayBuilder<RuleData> builder(compactRules->value.release()); | 356 HeapTerminatedArrayBuilder<RuleData> builder(compactRules->value.release()); |
| 362 builder.grow(pendingRules->size()); | 357 builder.grow(pendingRules->size()); |
| 363 while (!pendingRules->isEmpty()) { | 358 while (!pendingRules->isEmpty()) { |
| 364 builder.append(pendingRules->peek()); | 359 builder.append(pendingRules->peek()); |
| 365 pendingRules->pop(); | 360 pendingRules->pop(); |
| 366 } | 361 } |
| 367 | 362 |
| 368 compactRules->value = builder.release(); | 363 compactRules->value = builder.release(); |
| 369 } | 364 } |
| 370 } | 365 } |
| 371 | 366 |
| 372 void RuleSet::compactRules() { | 367 void RuleSet::compactRules() { |
| 373 // TODO(meade): crbug.com/694520 | 368 ASSERT(m_pendingRules); |
| 374 CHECK(m_pendingRules); | |
| 375 PendingRuleMaps* pendingRules = m_pendingRules.release(); | 369 PendingRuleMaps* pendingRules = m_pendingRules.release(); |
| 376 compactPendingRules(pendingRules->idRules, m_idRules); | 370 compactPendingRules(pendingRules->idRules, m_idRules); |
| 377 compactPendingRules(pendingRules->classRules, m_classRules); | 371 compactPendingRules(pendingRules->classRules, m_classRules); |
| 378 compactPendingRules(pendingRules->tagRules, m_tagRules); | 372 compactPendingRules(pendingRules->tagRules, m_tagRules); |
| 379 compactPendingRules(pendingRules->shadowPseudoElementRules, | 373 compactPendingRules(pendingRules->shadowPseudoElementRules, |
| 380 m_shadowPseudoElementRules); | 374 m_shadowPseudoElementRules); |
| 381 m_linkPseudoClassRules.shrinkToFit(); | 375 m_linkPseudoClassRules.shrinkToFit(); |
| 382 m_cuePseudoRules.shrinkToFit(); | 376 m_cuePseudoRules.shrinkToFit(); |
| 383 m_focusPseudoClassRules.shrinkToFit(); | 377 m_focusPseudoClassRules.shrinkToFit(); |
| 384 m_placeholderPseudoRules.shrinkToFit(); | 378 m_placeholderPseudoRules.shrinkToFit(); |
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 432 } | 426 } |
| 433 | 427 |
| 434 #ifndef NDEBUG | 428 #ifndef NDEBUG |
| 435 void RuleSet::show() const { | 429 void RuleSet::show() const { |
| 436 for (const auto& rule : m_allRules) | 430 for (const auto& rule : m_allRules) |
| 437 rule.selector().show(); | 431 rule.selector().show(); |
| 438 } | 432 } |
| 439 #endif | 433 #endif |
| 440 | 434 |
| 441 } // namespace blink | 435 } // namespace blink |
| OLD | NEW |