skia2/include
Mike Klein 80e1d56e19 implement SkTDArray with std::vector
It's always worth seeing if we can get away with replacing custom data
structures with ones from the standard library.  Our array-like types
are all good candidates to replace with std::vector, and it's especially
easy to start with SkTDArray.  Unlike the others, it has no preallocated
S-variant, which is tricky to make work with std::vector.

SkTDArray also has known integer overflow bugs, leading to out of range
writes.  It'd be _very_ nice to ditch it for a better standard vector.

I removed a bunch of unused or little-used methods, and updated a couple
call sites that used methods in unusual or dangerous ways.

I've had to tweak GrAAConvexTessellator and SkBaseShadowTessellator just
a touch to work within the constraints of an std::vector impl.  It's not
intended to be legal to write to the reserved-but-not-counted elements
of an SkTDArray, but you can get away with it in our old implementation.
This version now uses setCount() to actually reserve and count them, and
should have the same performance and use the same amount of memory.

The PathMeasure_explosion GM I added recently to reproduce this bug now
draws without triggering undefined behavior or ASAN errors, provided you
have ~40GB of RAM.

Bug: skia:7674

Change-Id: I4eacae18a976cd4a6d218102f8ca5d973d4d7d0e
Reviewed-on: https://skia-review.googlesource.com/115982
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2018-04-02 15:38:05 +00:00
..
android Simplify SkAnimatedImage 2018-01-30 18:46:35 +00:00
atlastext Add matrix stack to SkAtlasTextTarget. 2017-12-20 14:00:44 +00:00
c C API: document sk_matrix_t 2017-03-21 18:04:34 +00:00
codec Make SkAndroidCodec (optionally) respect origin 2018-01-26 22:13:34 +00:00
config Revert "Revert "SkUserConfig.h: remove out-of-date comment on SK_SFNTLY_SUBSETTER"" 2017-01-27 14:40:01 +00:00
core fix SkRRect fuzzer assert 2018-04-02 15:15:25 +00:00
effects Fixing build with SK_IGNORE_TO_STRING defined. 2018-03-29 13:42:45 +00:00
encode Revert "Add an Option for orientation on JPEG encodes" 2017-10-18 18:09:47 +00:00
gpu Revert "vulkan: Blacklist MSAA path renderer on Qualcomm drivers" 2018-03-29 23:17:07 +00:00
pathops Remove trailing whitespace. 2017-10-09 21:20:34 +00:00
ports removed dead code behind legacy fontmgr api flag 2017-10-11 15:18:57 +00:00
private implement SkTDArray with std::vector 2018-04-02 15:38:05 +00:00
svg Add a SkWStream-based SkSVGCanvas factory 2017-09-19 20:33:19 +00:00
utils Apply filterTextFlags so the fonts are the same. 2018-03-16 20:28:36 +00:00
views [Viewer] Preserve gesture transformation matrix on slide/backend change 2018-01-05 18:18:39 +00:00