SkTArray: more mem-movable types
Tag more types as mem-movable.
Update the default trait implementation to allow classes to opt-in
using a sk_is_trivially_relocatable type alias.
Incidentally, this also reduces the binary size by ~2.5K, but the real
gains will come from uninlining parts of SkTArray:
FILE SIZE VM SIZE
-------------- --------------
+0.3% +5.50Ki [ = ] 0 [section .debug_ranges]
+65% +2.47Ki [ = ] 0 [Unmapped]
[NEW] +335 [NEW] +124 _ZSt11make_uniqueIN4SkSL5BlockEJRNS0_8PositionE9SkSTArrayILi2ESt10unique_ptrINS0_9StatementESt14default_deleteIS6_EELb1EERNS1_4KindEDnEENSt8__detail9_MakeUniqIT_E15__single_objectEDpOT0_
+0.0% +176 [ = ] 0 [section .debug_abbrev]
-0.0% -26 +0.4% +169 [7 Others]
+20% +155 +24% +155 (anonymous namespace)::MeshOp::onCombineIfPossible()
+3.8% +138 +6.2% +138 SkTArray<>::operator=()
[NEW] +135 [NEW] +8 _ZZN5skgpu2v114SurfaceContext4copyE5sk_spI14GrSurfaceProxyE7SkIRect8SkIPointE29trace_event_unique_atomic1052.0
[DEL] -127 [DEL] -68 (anonymous namespace)::ShapedRun::ShapedRun()
[DEL] -135 [DEL] -8 _ZZN5skgpu2v114SurfaceContext4copyE5sk_spI14GrSurfaceProxyE7SkIRect8SkIPointE29trace_event_unique_atomic1049.0
-1.5% -152 -1.0% -34 SkTArray<>::push_back()
[DEL] -184 [DEL] -123 (anonymous namespace)::MeshOp::Mesh::Mesh()
-1.2% -190 -1.0% -70 SkTArray<>::push_back_raw()
-1.5% -191 -1.6% -84 SkTArray<>::~SkTArray()
-0.0% -327 [ = ] 0 [section .debug_loc]
[DEL] -335 [DEL] -124 _ZSt11make_uniqueIN4SkSL5BlockEJRNS0_8PositionE9SkSTArrayILi2ESt10unique_ptrINS0_9StatementESt14default_deleteIS6_EELb0EERNS1_4KindEDnEENSt8__detail9_MakeUniqIT_E15__single_objectEDpOT0_
-0.0% -2.17Ki [ = ] 0 [section .debug_line]
-61.7% -3.39Ki -62.3% -1.39Ki SkTArray<>::move<>()
-0.0% -5.23Ki [ = ] 0 [section .debug_str]
-0.0% -5.92Ki [ = ] 0 [section .debug_info]
-0.0% -10.6Ki -0.0% -2.47Ki TOTAL
Bug: skia:13657
Change-Id: I447427e3c644d1d2f046019d2561edc6cc7272c2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/587356
Reviewed-by: Ben Wagner <bungeman@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Florin Malita <fmalita@google.com>
24 files changed