WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
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
Details
Formatted Diff
Diff
patch
(60.17 KB, patch)
2008-12-13 13:16 PST
,
Darin Adler
andersca
: review+
Details
Formatted Diff
Diff
Show Obsolete
(1)
View All
Add attachment
proposed patch, testcase, etc.
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
Created
attachment 26003
[details]
patch
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 ;)
Darin Adler
Comment 8
2008-12-13 14:59:02 PST
http://trac.webkit.org/changeset/39279
http://trac.webkit.org/changeset/39280
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug