Go to file
Mike Klein 22c1f373b7 Revert "implement SkTDArray with std::vector"
This reverts commit 80e1d56e19.

Reason for revert: SkRTree.cpp:57 asserting, probably this?

Original change's description:
> 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>

TBR=mtklein@chromium.org,bungeman@google.com,brianosman@google.com

Change-Id: Icffd9f22fe89746a970ff598e1a05c774960bc0e
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:7674
Reviewed-on: https://skia-review.googlesource.com/117901
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2018-04-02 20:37:52 +00:00
animations first cut at a checkbox 2009-10-21 19:41:10 +00:00
bench Revert "allow timing in release-with-assert builds" 2018-03-30 16:22:17 +00:00
bin remove fetch-gn dependency on buildtools 2018-02-21 20:42:26 +00:00
debugger Revert "Revert "Revert "Revert "Revert "Revert "Redefine the meaning of sample counts in GPU backend."""""" 2018-02-03 01:59:59 +00:00
dm Remove old method of drawing DDL SKPs from DM (in favor of ViaDDL method) 2018-03-28 17:21:24 +00:00
docs fix a couple of minor surface doc changes 2018-04-02 12:38:05 +00:00
example Compile with GCC 7.2.0. 2018-03-13 22:18:18 +00:00
experimental [skottie] Clean up SkottieProperties 2018-03-23 18:09:50 +00:00
fuzz Add mock gl fuzzer 2018-04-02 15:30:20 +00:00
gm Revert "Delete GPU alpha clip masks" 2018-03-30 17:03:16 +00:00
gn SkPDF/Clusterator: expose to the light of a unit test 2018-03-29 20:32:15 +00:00
include Revert "implement SkTDArray with std::vector" 2018-04-02 20:37:52 +00:00
infra Revert "Temporarily remove Win10 QuadroP400 from CQ." 2018-04-02 17:04:56 +00:00
platform_tools Viewer/Amdroid: universal build, resources in APK 2018-03-06 22:52:10 +00:00
resources Add color fonts. 2018-03-28 20:14:44 +00:00
samplecode ccpr: Various cleanups 2018-03-27 15:38:34 +00:00
site fix a couple of minor surface doc changes 2018-04-02 12:38:05 +00:00
src Revert "implement SkTDArray with std::vector" 2018-04-02 20:37:52 +00:00
tests Revert "implement SkTDArray with std::vector" 2018-04-02 20:37:52 +00:00
third_party Roll FreeType. 2018-03-28 16:06:34 +00:00
tools Add multilib support as the default build option for libskqp 2018-04-02 17:46:52 +00:00
.clang-format Mark flatennable macros as block beginning/ending in .clang-format 2017-01-09 15:31:36 +00:00
.gitignore [lottiecap] Moved over from buildbot repo. 2018-03-20 13:25:23 +00:00
.gn Basic standalone GN configs. 2016-07-21 12:25:45 -07:00
AUTHORS Support x86 build with VS 2015 2018-03-19 15:20:35 +00:00
BUILD.gn Add Encoder fuzzers 2018-03-30 19:31:56 +00:00
codereview.settings Make uploading to Gerrit the default for Skia 2016-11-09 19:07:56 +00:00
CONTRIBUTING Fix references to https://sites.google.com/site/skiadocs/. 2015-02-03 13:12:54 -02:00
CQ_COMMITTERS Moved committer list to chrome-infra-auth and deleted it from the repo 2015-09-02 13:37:54 -07:00
DEPS Roll skia/third_party/externals/skcms/ d2cc6a7f7..4a77de482 (2 commits) 2018-04-02 19:50:22 +00:00
Doxyfile Make the housekeeper upload doxygen to a newer bucket 2016-10-04 13:23:57 -07:00
LICENSE BUG=skia:5602 2016-09-02 11:19:34 -07:00
OWNERS add OWNERS file 2017-12-01 19:50:19 +00:00
PRESUBMIT.py Presubmit that modified json files are valid json. 2018-02-12 16:32:12 +00:00
public.bzl Add color fonts. 2018-03-28 20:14:44 +00:00
README Fix references to https://sites.google.com/site/skiadocs/. 2015-02-03 13:12:54 -02:00
README.chromium Update README.chromium. 2015-06-11 13:19:24 -07:00
whitespace.txt Revert "Whitespace change" 2018-03-31 21:50:37 +00:00

Skia is a complete 2D graphic library for drawing Text, Geometries, and Images.

See full details, and build instructions, at https://skia.org.