[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:04:41 PDT 2010
https://bugs.webkit.org/show_bug.cgi?id=41129
--- Comment #20 from Darin Adler <darin at apple.com> 2010-07-14 12:04:41 PST ---
Here’s my cut at SelectorBag.
class SelectorBag : public Noncopyable {
public:
bool isEmpty() const;
PassOwnPtr<CSSSelector> takeAny();
void append(PassOwnPtr<CSSSelector>);
private:
SelectorBag();
~SelectorBag();
OwnPtr<CSSSelector> m_oneSelector;
Vector<CSSSelector*> m_overflowSelectors;
size_t m_overflowSelectorIndex;
};
SelectorBag::SelectorBag()
inline bool SelectorBag::isEmpty() const
{
return !m_oneSelector && m_overflowSelectorIndex < m_overflowSelectors.size();
}
inline PassOwnPtr<CSSSelector> SelectorBag::takeAny()
{
ASSERT(!isEmpty());
if (m_oneSelector)
return m_oneSelector.release();
return adoptPtr(m_overflowSelectors[m_overflowSelectorIndex++]);
}
inline void append(PassOwnPtr<CSSSelector> selector)
{
if (!m_oneSelector) {
m_oneSelector = selector;
return;
}
if (m_overflowSelectorIndex == m_overflowSelectors.size())
}
--
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