[Webkit-unassigned] [Bug 41129] CSSSelector: Avoid chaining tagHistory of CSSSelector, which causes stack overflow.

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Wed Jul 14 12:10:10 PDT 2010


https://bugs.webkit.org/show_bug.cgi?id=41129





--- Comment #21 from Darin Adler <darin at apple.com>  2010-07-14 12:10:10 PST ---
inline SelectorBag::SelectorBag()
    : m_overflowSelectorIndex(0)
{
}

inline SelectorBag::~SelectorBag()
{
    size_t size = m_overflowSelectors.size();
    for (size_t i = m_overflowSelectorIndex; i < size; ++i)
        delete m_overflowSelectors[i];
}

void append(PassOwnPtr<CSSSelector> selector)
{
    if (!m_oneSelector) {
        m_oneSelector = selector;
        return;
    }

    if (m_overflowSelectorIndex < m_overflowSelectors.size()) {
        m_overflowSelectors.append(selector.leakPtr());
        return;
    }

    m_overflowSelectorIndex = 0;
    m_overflowSelectors.resize(1);
    m_overflowSelectors[0] = selector.leakPtr();
}

Actually, should probably be Vector<CSSSelector*, 16> too.

Something like the above.

-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.



More information about the webkit-unassigned mailing list