⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 279242 in webkit


Ignore:
Timestamp:
Jun 24, 2021, 12:14:50 PM (5 years ago)
Author:
commit-queue@webkit.org
Message:

Unreviewed, reverting r275633.
https://bugs.webkit.org/show_bug.cgi?id=227373

Revert to see if this was the cause for some crashes seen
lately

Reverted changeset:

"Reduce Vector<> wasted capacity in some RuleSet code"
https://bugs.webkit.org/show_bug.cgi?id=224160
https://trac.webkit.org/changeset/275633

Location:
trunk/Source/WebCore
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r279240 r279242  
     12021-06-24  Commit Queue  <commit-queue@webkit.org>
     2
     3        Unreviewed, reverting r275633.
     4        https://bugs.webkit.org/show_bug.cgi?id=227373
     5
     6        Revert to see if this was the cause for some crashes seen
     7        lately
     8
     9        Reverted changeset:
     10
     11        "Reduce Vector<> wasted capacity in some RuleSet code"
     12        https://bugs.webkit.org/show_bug.cgi?id=224160
     13        https://trac.webkit.org/changeset/275633
     14
    1152021-06-24  Dmitry Kalinkin  <dmitry.kalinkin+webkit@gmail.com>
    216
  • trunk/Source/WebCore/style/RuleSet.cpp

    r278253 r279242  
    314314    auto mediaQueryCollector = MediaQueryCollector { evaluator };
    315315    addRulesFromSheet(sheet, mediaQueryCollector, nullptr, AddRulesMode::Normal);
    316 
    317     if (m_autoShrinkToFitEnabled)
    318         shrinkToFit();
    319316}
    320317
     
    337334    m_hasViewportDependentMediaQueries = mediaQueryCollector.hasViewportDependentMediaQueries;
    338335
    339     if (!mediaQueryCollector.dynamicMediaQueryRules.isEmpty()) {
    340         auto firstNewIndex = m_dynamicMediaQueryRules.size();
    341         m_dynamicMediaQueryRules.appendVector(WTFMove(mediaQueryCollector.dynamicMediaQueryRules));
    342 
    343         // Set the initial values.
    344         evaluateDynamicMediaQueryRules(evaluator, firstNewIndex);
    345     }
    346 
    347     if (m_autoShrinkToFitEnabled)
    348         shrinkToFit();
     336    if (mediaQueryCollector.dynamicMediaQueryRules.isEmpty())
     337        return;
     338
     339    auto firstNewIndex = m_dynamicMediaQueryRules.size();
     340    m_dynamicMediaQueryRules.appendVector(WTFMove(mediaQueryCollector.dynamicMediaQueryRules));
     341
     342    // Set the initial values.
     343    evaluateDynamicMediaQueryRules(evaluator, firstNewIndex);
    349344}
    350345
     
    361356
    362357    addChildRules(sheet.childRules(), mediaQueryCollector, resolver, mode);
     358
     359    if (m_autoShrinkToFitEnabled && mode == AddRulesMode::Normal)
     360        shrinkToFit();
    363361}
    364362
     
    418416                ruleSet->addRule(*feature.styleRule, feature.selectorIndex, feature.selectorListIndex);
    419417        }
    420         ruleSet->shrinkToFit();
    421418        return ruleSet;
    422419    }).iterator->value;
     
    476473}
    477474
    478 static inline void shrinkDynamicRules(Vector<RuleSet::DynamicMediaQueryRules>& dynamicRules)
    479 {
    480     for (auto& rule : dynamicRules)
    481         rule.shrinkToFit();
    482 
    483     dynamicRules.shrinkToFit();
    484 }
    485 
    486475void RuleSet::shrinkToFit()
    487476{
     
    491480    shrinkMapVectorsToFit(m_tagLowercaseLocalNameRules);
    492481    shrinkMapVectorsToFit(m_shadowPseudoElementRules);
    493 
    494482    m_linkPseudoClassRules.shrinkToFit();
    495483#if ENABLE(VIDEO)
     
    498486    m_hostPseudoClassRules.shrinkToFit();
    499487    m_slottedPseudoElementRules.shrinkToFit();
    500     m_partPseudoElementRules.shrinkToFit();
    501488    m_focusPseudoClassRules.shrinkToFit();
    502489    m_universalRules.shrinkToFit();
    503 
    504490    m_pageRules.shrinkToFit();
    505491    m_features.shrinkToFit();
    506 
    507     shrinkDynamicRules(m_dynamicMediaQueryRules);
    508492}
    509493
  • trunk/Source/WebCore/style/RuleSet.h

    r278253 r279242  
    7777        bool requiresFullReset { false };
    7878        bool result { true };
    79        
    80         void shrinkToFit()
    81         {
    82             mediaQuerySets.shrinkToFit();
    83             affectedRulePositions.shrinkToFit();
    84             ruleFeatures.shrinkToFit();
    85         }
    8679    };
    8780
     
    161154    template<typename Function> void traverseRuleDatas(Function&&);
    162155
     156
    163157    AtomRuleMap m_idRules;
    164158    AtomRuleMap m_classRules;
     
    176170    RuleDataVector m_universalRules;
    177171    Vector<StyleRulePage*> m_pageRules;
    178     RuleFeatureSet m_features;
    179     Vector<DynamicMediaQueryRules> m_dynamicMediaQueryRules;
    180     HashMap<Vector<size_t>, Ref<const RuleSet>> m_mediaQueryInvalidationRuleSetCache;
    181172    unsigned m_ruleCount { 0 };
    182173    bool m_hasHostPseudoClassRulesMatchingInShadowTree { false };
    183174    bool m_autoShrinkToFitEnabled { true };
     175    RuleFeatureSet m_features;
    184176    bool m_hasViewportDependentMediaQueries { false };
     177    Vector<DynamicMediaQueryRules> m_dynamicMediaQueryRules;
     178    HashMap<Vector<size_t>, Ref<const RuleSet>> m_mediaQueryInvalidationRuleSetCache;
    185179};
    186180
Note: See TracChangeset for help on using the changeset viewer.