Changeset 240037 in webkit


Ignore:
Timestamp:
Jan 16, 2019 8:03:31 AM (5 years ago)
Author:
Antti Koivisto
Message:

Add more assertions to find root cause for release assert hit in StyleResolver
https://bugs.webkit.org/show_bug.cgi?id=193488
<rdar://problem/30983040>

Reviewed by Zalan Bujtas.

  • css/StyleResolver.cpp:

(WebCore::StyleResolver::~StyleResolver):

Release assert we are not resolving tree style.

  • dom/Document.cpp:

(WebCore::Document::setIsResolvingTreeStyle):

  • dom/Document.h:

(WebCore::Document::isResolvingTreeStyle const):

  • style/StyleTreeResolver.cpp:

(WebCore::Style::TreeResolver::Scope::Scope):
(WebCore::Style::TreeResolver::Scope::~Scope):

Set isResolvingTreeStyle bit when we have a tree resolver scope.

Location:
trunk/Source/WebCore
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r240036 r240037  
     12019-01-16  Antti Koivisto  <antti@apple.com>
     2
     3        Add more assertions to find root cause for release assert hit in StyleResolver
     4        https://bugs.webkit.org/show_bug.cgi?id=193488
     5        <rdar://problem/30983040>
     6
     7        Reviewed by Zalan Bujtas.
     8
     9        * css/StyleResolver.cpp:
     10        (WebCore::StyleResolver::~StyleResolver):
     11
     12        Release assert we are not resolving tree style.
     13
     14        * dom/Document.cpp:
     15        (WebCore::Document::setIsResolvingTreeStyle):
     16        * dom/Document.h:
     17        (WebCore::Document::isResolvingTreeStyle const):
     18        * style/StyleTreeResolver.cpp:
     19        (WebCore::Style::TreeResolver::Scope::Scope):
     20        (WebCore::Style::TreeResolver::Scope::~Scope):
     21
     22        Set isResolvingTreeStyle bit when we have a tree resolver scope.
     23
    1242019-01-16  Zalan Bujtas  <zalan@apple.com>
    225
  • trunk/Source/WebCore/css/StyleResolver.cpp

    r239535 r240037  
    268268StyleResolver::~StyleResolver()
    269269{
     270    RELEASE_ASSERT(!m_document.isResolvingTreeStyle());
    270271    RELEASE_ASSERT(!m_isDeleted);
    271272    m_isDeleted = true;
  • trunk/Source/WebCore/dom/Document.cpp

    r240014 r240037  
    23272327}
    23282328
     2329void Document::setIsResolvingTreeStyle(bool value)
     2330{
     2331    RELEASE_ASSERT(value != m_isResolvingTreeStyle);
     2332    m_isResolvingTreeStyle = value;
     2333}
     2334
    23292335void Document::createRenderTree()
    23302336{
  • trunk/Source/WebCore/dom/Document.h

    r240011 r240037  
    13351335    bool inStyleRecalc() const { return m_inStyleRecalc; }
    13361336    bool inRenderTreeUpdate() const { return m_inRenderTreeUpdate; }
     1337    bool isResolvingTreeStyle() const { return m_isResolvingTreeStyle; }
     1338    void setIsResolvingTreeStyle(bool);
    13371339
    13381340    void updateTextRenderer(Text&, unsigned offsetOfReplacedText, unsigned lengthOfReplacedText);
     
    20182020    bool m_closeAfterStyleRecalc { false };
    20192021    bool m_inRenderTreeUpdate { false };
     2022    bool m_isResolvingTreeStyle { false };
    20202023
    20212024    bool m_gotoAnchorNeededAfterStylesheetsLoad { false };
  • trunk/Source/WebCore/style/StyleTreeResolver.cpp

    r240012 r240037  
    6868    , sharingResolver(document, styleResolver.ruleSets(), selectorFilter)
    6969{
     70    document.setIsResolvingTreeStyle(true);
    7071}
    7172
     
    8182TreeResolver::Scope::~Scope()
    8283{
     84    if (!shadowRoot)
     85        styleResolver.document().setIsResolvingTreeStyle(false);
     86
    8387    styleResolver.setOverrideDocumentElementStyle(nullptr);
    8488}
Note: See TracChangeset for help on using the changeset viewer.