|
|
Created:
4 years, 3 months ago by Bugs Nash Modified:
4 years, 2 months ago CC:
darktears, apavlov+blink_chromium.org, blink-reviews, blink-reviews-animation_chromium.org, blink-reviews-bindings_chromium.org, blink-reviews-css, blink-reviews-dom_chromium.org, blink-reviews-paint_chromium.org, blink-reviews-style_chromium.org, blink-worker-reviews_chromium.org, chromium-reviews, dglazkov+blink, dshwang, eae+blinkwatch, Eric Willigers, falken, hongchan, horo+watch_chromium.org, kinuko+worker_chromium.org, kinuko+watch, rjwright, rwlbuis, Raymond Toy, shans, shimazu+worker_chromium.org, sof, slimming-paint-reviews_chromium.org, tyoshino+watch_chromium.org, yhirano+watch_chromium.org Target Ref:
refs/pending/heads/master Project:
chromium Visibility:
Public. |
DescriptionDisallowed PassRefPtr copies across threads.
Part of making PassRefPtr move only, in preparation for the removal of
PassRefPtr.
Overrode CrossThreadCopier<PassRefPtr>::copy taking an
rvalue, disallowing lvalues of PassRefPtr to be passed in.
Wrapped return value of CrossThreadCopier<PassRefPtr<T>>::copy in
std::move to ensure an rvalue is returned. This is necessary to
prevent PassRefPtr copies where a PassRefPtr object is constructed
inside the call to CrossThreadCopier::copy, e.g.
https://cs.chromium.org/chromium/src/third_party/WebKit/Source/modules/webaudio/AudioScheduledSourceNode.cpp?l=215
BUG=640449
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Committed: https://crrev.com/be469c01f9657a1598ba00423f26279e2c24f0c9
Cr-Commit-Position: refs/heads/master@{#421127}
Patch Set 1 #Patch Set 2 : rebased #
Total comments: 1
Patch Set 3 : Removed CrossThreadCopierPassThrough inheritence #
Total comments: 2
Patch Set 4 : Changed typedef to PassRefPtr<T> #Messages
Total messages: 35 (23 generated)
Description was changed from ========== Disallowed PassRefPtr copies across threads. Part of making PassRefPtr move only, in preparation for the removal of PassRefPtr. Overrode copy method for CrossThreadCopier<PassRefPtr> taking an rvalue, disallowing lvalues of PassRefPtr to be passed in. Wrapped return value of CrossThreadCopier<PassRefPtr<T>>::copy in std::move to ensure an rvalue is returned. This is necessary to prevent PassRefPtr copies where a PassRefPtr object is constructed inside the call to CrossThreadCopier::copy BUG=640449 ========== to ========== Disallowed PassRefPtr copies across threads. Part of making PassRefPtr move only, in preparation for the removal of PassRefPtr. Overrode copy method for CrossThreadCopier<PassRefPtr> taking an rvalue, disallowing lvalues of PassRefPtr to be passed in. Wrapped return value of CrossThreadCopier<PassRefPtr<T>>::copy in std::move to ensure an rvalue is returned. This is necessary to prevent PassRefPtr copies where a PassRefPtr object is constructed inside the call to CrossThreadCopier::copy BUG=640449 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 ==========
Description was changed from ========== Disallowed PassRefPtr copies across threads. Part of making PassRefPtr move only, in preparation for the removal of PassRefPtr. Overrode copy method for CrossThreadCopier<PassRefPtr> taking an rvalue, disallowing lvalues of PassRefPtr to be passed in. Wrapped return value of CrossThreadCopier<PassRefPtr<T>>::copy in std::move to ensure an rvalue is returned. This is necessary to prevent PassRefPtr copies where a PassRefPtr object is constructed inside the call to CrossThreadCopier::copy BUG=640449 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 ========== to ========== Disallowed PassRefPtr copies across threads. Part of making PassRefPtr move only, in preparation for the removal of PassRefPtr. Overrode copy method for CrossThreadCopier<PassRefPtr> taking an rvalue, disallowing lvalues of PassRefPtr to be passed in. Wrapped return value of CrossThreadCopier<PassRefPtr<T>>::copy in std::move to ensure an rvalue is returned. This is necessary to prevent PassRefPtr copies where a PassRefPtr object is constructed inside the call to CrossThreadCopier::copy, e.g. https://cs.chromium.org/chromium/src/third_party/WebKit/Source/modules/webaud... BUG=640449 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 ==========
Description was changed from ========== Disallowed PassRefPtr copies across threads. Part of making PassRefPtr move only, in preparation for the removal of PassRefPtr. Overrode copy method for CrossThreadCopier<PassRefPtr> taking an rvalue, disallowing lvalues of PassRefPtr to be passed in. Wrapped return value of CrossThreadCopier<PassRefPtr<T>>::copy in std::move to ensure an rvalue is returned. This is necessary to prevent PassRefPtr copies where a PassRefPtr object is constructed inside the call to CrossThreadCopier::copy, e.g. https://cs.chromium.org/chromium/src/third_party/WebKit/Source/modules/webaud... BUG=640449 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 ========== to ========== Disallowed PassRefPtr copies across threads. Part of making PassRefPtr move only, in preparation for the removal of PassRefPtr. Overrode copy method for CrossThreadCopier<PassRefPtr> taking an rvalue, disallowing lvalues of PassRefPtr to be passed in. Wrapped return value of CrossThreadCopier<PassRefPtr<T>>::copy in std::move to ensure an rvalue is returned. This is necessary to prevent PassRefPtr copies where a PassRefPtr object is constructed inside the call to CrossThreadCopier::copy, e.g. https://cs.chromium.org/chromium/src/third_party/WebKit/Source/modules/webaud... BUG=640449 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 ==========
Description was changed from ========== Disallowed PassRefPtr copies across threads. Part of making PassRefPtr move only, in preparation for the removal of PassRefPtr. Overrode copy method for CrossThreadCopier<PassRefPtr> taking an rvalue, disallowing lvalues of PassRefPtr to be passed in. Wrapped return value of CrossThreadCopier<PassRefPtr<T>>::copy in std::move to ensure an rvalue is returned. This is necessary to prevent PassRefPtr copies where a PassRefPtr object is constructed inside the call to CrossThreadCopier::copy, e.g. https://cs.chromium.org/chromium/src/third_party/WebKit/Source/modules/webaud... BUG=640449 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 ========== to ========== Disallowed PassRefPtr copies across threads. Part of making PassRefPtr move only, in preparation for the removal of PassRefPtr. Overrode copy method for CrossThreadCopier<PassRefPtr> taking an rvalue, disallowing lvalues of PassRefPtr to be passed in. Wrapped return value of CrossThreadCopier<PassRefPtr<T>>::copy in std::move to ensure an rvalue is returned. This is necessary to prevent PassRefPtr copies where a PassRefPtr object is constructed inside the call to CrossThreadCopier::copy, e.g. https://cs.chromium.org/chromium/src/third_party/WebKit/Source/modules/webaud... BUG=640449 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 ==========
The CQ bit was checked by bugsnash@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: This issue passed the CQ dry run.
The CQ bit was checked by bugsnash@chromium.org to run a CQ dry run
bugsnash@chromium.org changed reviewers: + yutak@chromium.org
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
Description was changed from ========== Disallowed PassRefPtr copies across threads. Part of making PassRefPtr move only, in preparation for the removal of PassRefPtr. Overrode copy method for CrossThreadCopier<PassRefPtr> taking an rvalue, disallowing lvalues of PassRefPtr to be passed in. Wrapped return value of CrossThreadCopier<PassRefPtr<T>>::copy in std::move to ensure an rvalue is returned. This is necessary to prevent PassRefPtr copies where a PassRefPtr object is constructed inside the call to CrossThreadCopier::copy, e.g. https://cs.chromium.org/chromium/src/third_party/WebKit/Source/modules/webaud... BUG=640449 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 ========== to ========== Disallowed PassRefPtr copies across threads. Part of making PassRefPtr move only, in preparation for the removal of PassRefPtr. Overrode CrossThreadCopier<PassRefPtr>::copy taking an rvalue, disallowing lvalues of PassRefPtr to be passed in. Wrapped return value of CrossThreadCopier<PassRefPtr<T>>::copy in std::move to ensure an rvalue is returned. This is necessary to prevent PassRefPtr copies where a PassRefPtr object is constructed inside the call to CrossThreadCopier::copy, e.g. https://cs.chromium.org/chromium/src/third_party/WebKit/Source/modules/webaud... BUG=640449 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 ==========
Not sure if this is the best solution, ptal
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: This issue passed the CQ dry run.
This looks okay, LGTM w/ a nit. https://codereview.chromium.org/2355153002/diff/20001/third_party/WebKit/Sour... File third_party/WebKit/Source/platform/CrossThreadCopier.h (right): https://codereview.chromium.org/2355153002/diff/20001/third_party/WebKit/Sour... third_party/WebKit/Source/platform/CrossThreadCopier.h:94: struct CrossThreadCopier<PassRefPtr<T>> : public CrossThreadCopierPassThrough<PassRefPtr<T>> { You probably should remove this inheritance and define Type yourself, since this isn't really the usual "pass through" copy.
The CQ bit was checked by bugsnash@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
On 2016/09/23 at 07:33:35, yutak wrote: > This looks okay, LGTM w/ a nit. > > https://codereview.chromium.org/2355153002/diff/20001/third_party/WebKit/Sour... > File third_party/WebKit/Source/platform/CrossThreadCopier.h (right): > > https://codereview.chromium.org/2355153002/diff/20001/third_party/WebKit/Sour... > third_party/WebKit/Source/platform/CrossThreadCopier.h:94: struct CrossThreadCopier<PassRefPtr<T>> : public CrossThreadCopierPassThrough<PassRefPtr<T>> { > You probably should remove this inheritance and define Type yourself, > since this isn't really the usual "pass through" copy. Could you please take a look at the change I've made as I'm not sure if this is what you were thinking. Have removed the inheritance and defined Type as you suggested. Also had to change the static_assert as the Type has changed. Can alternatively change the typedef to: typedef PassRefPtr<T> Type;
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: This issue passed the CQ dry run.
https://codereview.chromium.org/2355153002/diff/40001/third_party/WebKit/Sour... File third_party/WebKit/Source/platform/CrossThreadCopier.cpp (right): https://codereview.chromium.org/2355153002/diff/40001/third_party/WebKit/Sour... third_party/WebKit/Source/platform/CrossThreadCopier.cpp:79: CopierThreadSafeRefCountedTest, You don't have to change this. https://codereview.chromium.org/2355153002/diff/40001/third_party/WebKit/Sour... File third_party/WebKit/Source/platform/CrossThreadCopier.h (right): https://codereview.chromium.org/2355153002/diff/40001/third_party/WebKit/Sour... third_party/WebKit/Source/platform/CrossThreadCopier.h:96: typedef T Type; Type should be PassRefPtr<T>, not T. In the original code, the type parameter of CrossThreadCopierPassThrough was PassRefPtr<T>, thus Type was PassRefPtr<T>. (optional: you can also use "using Type = PassRefPtr<T>;" syntax.)
LGTM if my prior comments are addressed.
The CQ bit was checked by bugsnash@chromium.org
The patchset sent to the CQ was uploaded after l-g-t-m from yutak@chromium.org Link to the patchset: https://codereview.chromium.org/2355153002/#ps60001 (title: "Changed typedef to PassRefPtr<T>")
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Try jobs failed on following builders: chromium_presubmit on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/chromium_presub...)
owner LGTM
On 2016/09/27 at 05:07:31, haraken wrote: > owner LGTM of course, thanks Kentaro!
The CQ bit was checked by bugsnash@chromium.org
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
Message was sent while issue was closed.
Committed patchset #4 (id:60001)
Message was sent while issue was closed.
Description was changed from ========== Disallowed PassRefPtr copies across threads. Part of making PassRefPtr move only, in preparation for the removal of PassRefPtr. Overrode CrossThreadCopier<PassRefPtr>::copy taking an rvalue, disallowing lvalues of PassRefPtr to be passed in. Wrapped return value of CrossThreadCopier<PassRefPtr<T>>::copy in std::move to ensure an rvalue is returned. This is necessary to prevent PassRefPtr copies where a PassRefPtr object is constructed inside the call to CrossThreadCopier::copy, e.g. https://cs.chromium.org/chromium/src/third_party/WebKit/Source/modules/webaud... BUG=640449 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 ========== to ========== Disallowed PassRefPtr copies across threads. Part of making PassRefPtr move only, in preparation for the removal of PassRefPtr. Overrode CrossThreadCopier<PassRefPtr>::copy taking an rvalue, disallowing lvalues of PassRefPtr to be passed in. Wrapped return value of CrossThreadCopier<PassRefPtr<T>>::copy in std::move to ensure an rvalue is returned. This is necessary to prevent PassRefPtr copies where a PassRefPtr object is constructed inside the call to CrossThreadCopier::copy, e.g. https://cs.chromium.org/chromium/src/third_party/WebKit/Source/modules/webaud... BUG=640449 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 Committed: https://crrev.com/be469c01f9657a1598ba00423f26279e2c24f0c9 Cr-Commit-Position: refs/heads/master@{#421127} ==========
Message was sent while issue was closed.
Patchset 4 (id:??) landed as https://crrev.com/be469c01f9657a1598ba00423f26279e2c24f0c9 Cr-Commit-Position: refs/heads/master@{#421127} |