RESOLVED FIXED 17497
eliminate DeprecatedValueList
https://bugs.webkit.org/show_bug.cgi?id=17497
Summary eliminate DeprecatedValueList
Darin Adler
Reported 2008-02-23 00:59:23 PST
Need to get rid of this class.
Attachments
patch to do this for SegmentedString (7.67 KB, patch)
2008-02-23 01:05 PST, Darin Adler
no flags
patch (60.17 KB, patch)
2008-12-13 13:16 PST, Darin Adler
andersca: review+
Darin Adler
Comment 1 2008-02-23 01:05:23 PST
Created attachment 19290 [details] patch to do this for SegmentedString
Sam Weinig
Comment 2 2008-02-23 14:26:44 PST
Comment on attachment 19290 [details] patch to do this for SegmentedString r=me, though I assume this requires the changes the to Deque first.
Darin Adler
Comment 3 2008-02-23 23:39:54 PST
Comment on attachment 19290 [details] patch to do this for SegmentedString Committed revision 30546.
Darin Adler
Comment 4 2008-02-24 23:02:21 PST
These are the three remaining clients: 1) CSSMutableStyleDeclaration::m_values -- can be a Vector, I think 2) Document::m_windowEventListeners -- Vector? ListHashSet? 3) EventTargetNode::m_regdListeners -- Vector? ListHashSet?
Anders Carlsson
Comment 5 2008-02-25 17:05:27 PST
I think that CSSMutableStyleDeclaration might be a great candidate for ListHashMap, something like ListHashMap<int, CSSProperty> (the item accessor will be O(n), but that is already the case)
Darin Adler
Comment 6 2008-12-13 13:16:25 PST
Anders Carlsson
Comment 7 2008-12-13 13:53:50 PST
Comment on attachment 26003 [details] patch > #endif > Index: WebCore/dom/EventTargetNode.cpp > =================================================================== > --- WebCore/dom/EventTargetNode.cpp (revision 39276) > +++ WebCore/dom/EventTargetNode.cpp (working copy) > +const RegisteredEventListeners& EventTargetNode::eventListeners() const > +{ > + if (hasRareData()) { > + if (RegisteredEventListeners* listeners = rareData()->listeners()) > + return *listeners; > + } > + static const RegisteredEventListeners* emptyListenersVector = new RegisteredEventListeners; > + return *emptyListenersVector; Clever! > void EventTargetNode::removeEventListener(const AtomicString& eventType, EventListener* listener, bool useCapture) > { > - if (!m_regdListeners) > + if (!hasRareData()) > return; > > - RegisteredEventListenerList::Iterator end = m_regdListeners->end(); > - for (RegisteredEventListenerList::Iterator it = m_regdListeners->begin(); it != end; ++it) { > - RegisteredEventListener& r = **it; > + RegisteredEventListeners* listeners = rareData()->listeners(); > + if (!listeners) > + return; > + > + size_t size = listeners->size(); > + for (size_t i = 0; i < size; ++i) { > + RegisteredEventListener& r = *(*listeners)[i]; I prefer listeners->at(i). > void EventTargetNode::removeInlineEventListenerForType(const AtomicString& eventType) > { > + > + size_t size = listeners->size(); > + for (size_t i = 0; i < size; ++i) { > + RegisteredEventListener& r = *(*listeners)[i]; > + if (r.eventType() != eventType || !r.listener()->isInline()) > continue; > Same thing here. > + > +typedef Vector<RefPtr<RegisteredEventListener> > RegisteredEventListeners; > I think RegistereEventListenerVector is better here. r=me! I usually delete the files in a separate commit. Boy it feels great to see those red patches on webkit-changes ;)
Note You need to log in before you can comment on or make changes to this bug.