The bulk of this commit was generated by running:
run-clang-tidy.py \
-checks='-*,llvm-namespace-comment' \
-header-filter=^/.../mozilla-central/.* \
-fix
This conversion was done with the script:
find . -name '*.cpp' -o -name '*.h' -o -name '*.mm' -o -name '*.idl' | \
egrep -v 'cairo-win32-refptr.h|RefPtr.h|TestRefPtr.cpp' | \
xargs sed -i -e 's/mozilla::TemporaryRef</already_AddRefed</g' \
-e 's/TemporaryRef</already_AddRefed</g'
Manual fixups were performed in the following instances:
- We handled mfbt/RefPtr.h manually so as to not convert TemporaryRef itself
into already_AddRefed.
- The following files had explicit Move() calls added to make up for the lack
of a copy constructor on already_AddRefed:
dom/base/ImageEncoder.cpp
dom/media/MediaTaskQueue.{h,cpp}
dom/media/webaudio/PannerNode.cpp
- A redundant overload for MediaTaskQueue::Dispatch was deleted.
- A few manual fixups were required in mfbt/tests/TestRefPtr.cpp.
- Comments, using declarations, and forward declarations relating to
TemporaryRef in dom/canvas/ and gfx/layers/ were changed to refer to
already_AddRefed.
This gives a substantial performance improvement over the more general Mask():
Test (MaskSurface10x10): 1.93042ms +/- 0.305028
Test (MaskSurface100x100): 2.33435ms +/- 1.00807
Test (MaskSurface500x500): 28.0472ms +/- 0.820744
Test (MaskSurface1000x1000): 107.656ms +/- 6.44615
Test (Mask10x10): 13.5237ms +/- 0.0932034
Test (Mask100x100): 14.0742ms +/- 1.21005
Test (Mask500x500): 96.5596ms +/- 1.81415
Test (Mask1000x1000): 356.891ms +/- 9.30592
--HG--
extra : rebase_source : a3031305302fb4abe93aa480df35ed0936d68cd8