Summary: | Purge PassRefPtr from TouchList | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | Nael Ouedraogo <nael.ouedp> | ||||||||||||
Component: | WebCore Misc. | Assignee: | Nael Ouedraogo <nael.ouedp> | ||||||||||||
Status: | RESOLVED FIXED | ||||||||||||||
Severity: | Normal | CC: | cdumez, commit-queue, esprehn+autocc, kangil.han, youennf | ||||||||||||
Priority: | P2 | ||||||||||||||
Version: | WebKit Nightly Build | ||||||||||||||
Hardware: | Unspecified | ||||||||||||||
OS: | Unspecified | ||||||||||||||
Attachments: |
|
Description
Nael Ouedraogo
2016-05-23 02:49:09 PDT
Created attachment 279558 [details]
Patch
Comment on attachment 279558 [details] Patch Attachment 279558 [details] did not pass mac-debug-ews (mac): Output: http://webkit-queues.webkit.org/results/1368778 New failing tests: http/tests/media/hls/video-controls-live-stream.html Created attachment 279560 [details]
Archive of layout-test-results from ews115 for mac-yosemite
The attached test failures were seen while running run-webkit-tests on the mac-debug-ews.
Bot: ews115 Port: mac-yosemite Platform: Mac OS X 10.10.5
Comment on attachment 279558 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=279558&action=review > Source/WebCore/dom/TouchList.h:51 > + void append(RefPtr<Touch> touch) { m_values.append(WTFMove(touch)); } RefPtr<Touch>&& ? (In reply to comment #4) > Comment on attachment 279558 [details] > Patch > > View in context: > https://bugs.webkit.org/attachment.cgi?id=279558&action=review > > > Source/WebCore/dom/TouchList.h:51 > > + void append(RefPtr<Touch> touch) { m_values.append(WTFMove(touch)); } > > RefPtr<Touch>&& ? The append() method is passed a : - RefPtr<Touch>& in EventHandler::handleTouchEvent() which cannot be moved. - Ref<Touch> in EventPath.cpp - and Touch* in JS binding code. The alternative is to implement two append functions. (In reply to comment #2) > Comment on attachment 279558 [details] > Patch > > Attachment 279558 [details] did not pass mac-debug-ews (mac): > Output: http://webkit-queues.webkit.org/results/1368778 > > New failing tests: > http/tests/media/hls/video-controls-live-stream.html Failure observed in http/tests/media/hls on mac-yosemite in debug seems not related to the patch. Same test on mac-elcapitan in debug successfully passed locally. Comment on attachment 279558 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=279558&action=review >>> Source/WebCore/dom/TouchList.h:51 >>> + void append(RefPtr<Touch> touch) { m_values.append(WTFMove(touch)); } >> >> RefPtr<Touch>&& ? > > The append() method is passed a : > - RefPtr<Touch>& in EventHandler::handleTouchEvent() which cannot be moved. > - Ref<Touch> in EventPath.cpp > - and Touch* in JS binding code. > > The alternative is to implement two append functions. Gyuyoung is right. This function should take a RefPtr<Touch>&&. Fix the call sites if necessary (using copyRef() if you cannot WTFMove()). Created attachment 279637 [details]
Patch
Attachment 279637 [details] did not pass style-queue:
ERROR: Source/WebCore/page/EventHandler.cpp:3912: Weird number of spaces at line-start. Are you using a 4-space indent? [whitespace/indent] [3]
ERROR: Source/WebCore/page/EventHandler.cpp:3913: Weird number of spaces at line-start. Are you using a 4-space indent? [whitespace/indent] [3]
ERROR: Source/WebCore/page/EventHandler.cpp:3914: Weird number of spaces at line-start. Are you using a 4-space indent? [whitespace/indent] [3]
Total errors found: 3 in 3 files
If any of these errors are false positives, please file a bug against check-webkit-style.
> Gyuyoung is right. This function should take a RefPtr<Touch>&&. Fix the call
> sites if necessary (using copyRef() if you cannot WTFMove()).
OK. I fixed in uploaded patch.
Comment on attachment 279637 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=279637&action=review Change is OK. A few things I would have done differently. When touching a header file, we are changing each to use #pragma once instead of #ifndef. > Source/WebCore/dom/TouchList.h:51 > + void append(RefPtr<Touch>&& touch) { m_values.append(WTFMove(touch)); } Since there can’t be any null values, this should take a Ref&&, not RefPtr&&. > Source/WebCore/dom/TouchList.h:56 > + Vector<RefPtr<Touch>> m_values; Since there can’t be any null values, this should be Vector<Ref>, not Vector<RefPtr>. > Source/WebCore/page/EventHandler.cpp:3914 > + Ref<Touch> touch = Touch::create(targetFrame, touchTarget.get(), point.id(), > + point.screenPos().x(), point.screenPos().y(), > + adjustedPageX, adjustedPageY, > + point.radiusX(), point.radiusY(), point.rotationAngle(), point.force()); WebKit code style guidelines discourage this kind of "indenting to match the (" style. Strangely, I can’t find it in document, though. Also, we normally would use "auto" instead of writing Ref<Touch> in new code. Created attachment 279752 [details]
Patch
I fixed the code style and #pragma issue in the uploaded patch.
> > Source/WebCore/dom/TouchList.h:51
> > + void append(RefPtr<Touch>&& touch) { m_values.append(WTFMove(touch)); }
>
> Since there can’t be any null values, this should take a Ref&&, not RefPtr&&.
>
> > Source/WebCore/dom/TouchList.h:56
> > + Vector<RefPtr<Touch>> m_values;
>
> Since there can’t be any null values, this should be Vector<Ref>, not
> Vector<RefPtr>.
Use of Ref&& instead of RefPtr&& is more complex since append method is passed a Touch* in JS binding code.
I'll investigate it further.
Created attachment 279754 [details]
Patch
Comment on attachment 279754 [details] Patch Clearing flags on attachment: 279754 Committed r201377: <http://trac.webkit.org/changeset/201377> All reviewed patches have been landed. Closing bug. |