skia2/include/private
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
..
GrAuditTrail.h Remove trailing whitespace. 2017-10-09 21:20:34 +00:00
GrColor.h Revert "Revert "move GrColor.h to private, IWYU"" 2018-02-06 23:05:46 +00:00
GrGLSL.h Switch atlas clients over to using absolute texture coordinates (take 2) 2017-08-25 15:19:27 +00:00
GrOpList.h Move control of explicit GPU resource allocation to GrContextOptions 2018-02-08 12:36:29 +00:00
GrRenderTargetProxy.h Alter GrSurface/GrSurfaceProxy flags to prepare for GrTexture/GrTextureProxy -specific flags 2018-03-19 12:21:05 +00:00
GrSharedEnums.h sksl enum support 2017-11-13 14:36:40 +00:00
GrSingleOwner.h Reland of Make a single GrSingleOwner in GrContext (patchset #1 id:1 of https://codereview.chromium.org/1565303003/ ) 2016-01-08 10:09:13 -08:00
GrSurfaceProxy.h Add texture-specific flags for External & Rectangle textures 2018-03-21 17:04:18 +00:00
GrSurfaceProxyRef.h Implement GPU/OpList DDLs 2018-02-01 15:00:53 +00:00
GrSwizzle.h Replace SkFAIL with SK_ABORT. 2017-08-16 15:37:54 +00:00
GrTextureProxy.h Alter GrSurface/GrSurfaceProxy flags to prepare for GrTexture/GrTextureProxy -specific flags 2018-03-19 12:21:05 +00:00
GrTypesPriv.h Move GrPixelConfig to GrTypesPriv 2018-03-23 21:05:10 +00:00
SkAtomics.h Clean up some unused atomic routines. 2016-07-27 08:40:45 -07:00
SkBitmaskEnum.h SkPDF: SkPDFFont class changes 2016-08-16 09:36:23 -07:00
SkChecksum.h Use sse4.2 CRC32 instructions to hash when available. 2016-08-08 09:06:28 -07:00
SkDeferredDisplayList.h Remove SK_RASTER_RECORDER_IMPLEMENTATION 2018-03-15 12:55:06 +00:00
SkEncodedInfo.h Reland "Hide SkEncodedInfo" 2017-12-05 19:28:08 +00:00
SkFixed.h add saturate helper for float2int64 2018-01-31 21:21:36 +00:00
SkFloatBits.h clean up useage of SkFloatBits 2017-08-07 02:49:29 +00:00
SkFloatingPoint.h begin to wrap all float divides 2018-02-12 19:04:19 +00:00
SkImageInfoPriv.h Support GL_RGB textures and render targets. 2018-03-22 14:49:44 +00:00
SkLeanWindows.h SkLeanWindows.h: #include "Windows.h" fewer places 2016-06-07 17:21:10 -07:00
SkMalloc.h Add 2 fuzz targets for image decoding (oss-fuzz) 2018-02-12 15:25:59 +00:00
SkMessageBus.h Send TextBlobCache purge messages only to owning cache. 2017-12-14 18:52:49 +00:00
SkMutex.h Teach TSAN directly about semaphore_t. 2017-09-21 17:09:40 +00:00
SkOnce.h tweak SkOnce.h header to work around issues with std::atomic::compare_exchange_strong 2016-12-16 22:21:27 +00:00
SkPathRef.h Fixed warnings for casting large type to smaller one. 2018-03-27 13:28:24 +00:00
SkSafe32.h Fixed warnings for casting large type to smaller one. 2018-03-27 13:28:24 +00:00
SkSafe_math.h Guard against buggy ucrt\math.h. 2016-11-28 15:40:23 +00:00
SkSemaphore.h Fix SkSemaphore comments. 2017-02-22 20:11:54 +00:00
SkShadowFlags.h Remove deprecated drawShadow interfaces 2018-02-28 19:07:29 +00:00
SkSpinlock.h Cache GrColorSpaceXforms 2016-10-20 20:47:33 +00:00
SkTArray.h begin cleanup of malloc porting layer 2018-01-05 21:29:35 +00:00
SkTDArray.h Revert "implement SkTDArray with std::vector" 2018-04-02 20:37:52 +00:00
SkTemplates.h begin cleanup of malloc porting layer 2018-01-05 21:29:35 +00:00
SkTFitsIn.h Make SkTFitsIn and SkTo constexpr. 2017-10-17 22:48:51 +00:00
SkTHash.h Add mock config to tools and run through gms and benchs without crashing. 2017-07-07 20:47:38 +00:00
SkThreadID.h Unify ThreadID. 2015-09-29 14:38:01 -07:00
SkTLogic.h Compute inverse gamma table at compile time. 2017-10-18 19:43:18 +00:00
SkTSearch.h Convert NULL and 0 to nullptr. 2017-08-28 17:48:57 +00:00
SkWeakRefCnt.h Mark overridden destructors with 'override' and remove 'virtual' 2017-03-22 16:06:18 +00:00