skia2/include/private
Mike Klein 3674336c33 Reland "make enum santizer fatal"
This is a reland of 166dbd3135

Since last attempt,
   - update SkPath::Direction docs
   - kIllegal is not an advanced blend mode

Original change's description:
> make enum santizer fatal
>
> This enum sanitizer checks that all the values of the enum we use fall
> within the range of the enumerated values.
>
> The main thing this helps point out is that the size of enum types in
> C++ need only be large enough to hold the largest declared value; larger
> values are undefined.  In practice, most enums are implemented as ints
> for compatibility with C, so while this hasn't pointed out anything
> egregiously broken, the sanitizer has found a couple possibly dangerous
> situations in our codebase.
>
> For most types using values outside the enum range, we can just
> explicitly size them to int.  This makes their de facto size de jure.
>
> But we need to actually make GrBlendEquation and GrBlendCoeff not store
> values outside their enumerated range.  They're packed into bitfields
> that really can't represent those (negative) values.  So for these I've
> added new kIllegal values to the enums, forcing us to deal with our
> once-silent illegal values a bit more explicitly.
>
> Change-Id: Ib617694cf1aaa83ae99289e9e760f49cb6393a2f
> Reviewed-on: https://skia-review.googlesource.com/c/168484
> Reviewed-by: Brian Osman <brianosman@google.com>

Cq-Include-Trybots: skia.primary:Housekeeper-PerCommit-Bookmaker,Test-Android-Clang-AndroidOne-GPU-Mali400MP2-arm-Debug-All-Android
Change-Id: Id93b80bbeae11872542c9b76715e3c3cb10609fd
Reviewed-on: https://skia-review.googlesource.com/c/168582
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2018-11-06 17:31:00 +00:00
..
GrAuditTrail.h Remove trailing whitespace. 2017-10-09 21:20:34 +00:00
GrCCClipPath.h ccpr: Remove the dangling pointer from GrCCDrawPathsOp 2018-09-14 16:32:58 +00:00
GrCCPerOpListPaths.h include: whitespace changes for clang-format 2018-09-19 14:54:57 +00:00
GrColor.h Remove some more GrColor references 2018-11-06 13:34:25 +00:00
GrOpList.h Use SkPMColor4f throughout clear APIs 2018-11-05 20:36:24 +00:00
GrProxyRef.h Reland "Move GrGeometryProcessor's textures out of classes and into" 2018-08-07 14:02:49 +00:00
GrRenderTargetProxy.h Revert "increase Builder's prealloc size after colorspace change" 2018-09-10 20:49:30 +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
GrSkSLFPFactoryCache.h Revert "replace SkNVRefCnt with SkRefCnt" 2018-10-30 15:23:06 +00:00
GrSurfaceProxy.h Skip visiting for allocator gathering in GrTextureOp when all proxies 2018-10-12 19:08:31 +00:00
GrTextureProxy.h Revert "increase Builder's prealloc size after colorspace change" 2018-09-10 20:49:30 +00:00
GrTypesPriv.h Reland "make enum santizer fatal" 2018-11-06 17:31:00 +00:00
GrVkTypesPriv.h Remove include/gpu/vk from include paths. 2018-05-22 19:59:35 +00:00
SkArenaAlloc.h Change 0 extraSize allocation behavior for SkArenaAlloc 2018-10-15 17:59:25 +00:00
SkAtomics.h port most SkAtomic<T> to std::atomic<T> 2018-08-09 23:40:31 +00:00
SkBitmaskEnum.h SkPDF: SkPDFFont class changes 2016-08-16 09:36:23 -07:00
SkChecksum.h Move SkNoncopyable to include/private. 2018-07-17 21:39:51 +00:00
SkColorData.h Use SkPMColor4f throughout clear APIs 2018-11-05 20:36:24 +00:00
SkDeferredDisplayList.h Test YUV images in DDL 2018-10-01 12:12:29 +00:00
SkEncodedInfo.h Make SkCodec truly default to sRGB 2018-09-27 20:08:06 +00:00
SkFixed.h Revert "SkMath takes some functions from from SkTypes" 2018-09-07 17:32:54 +00:00
SkFloatBits.h include: whitespace changes for clang-format 2018-09-19 14:54:57 +00:00
SkFloatingPoint.h Use std::numeric_limits for SK_FloatNaN and Infinity 2018-10-31 18:02:00 +00:00
SkHalf.h Add GrColor4h (half-float), for use in Ops and (eventually) vertices 2018-10-29 15:11:51 +00:00
SkImageInfoPriv.h Remove checks that insist on kOpaque for some color types 2018-10-11 15:30:55 +00:00
SkLeanWindows.h SkLeanWindows.h: #include "Windows.h" fewer places 2016-06-07 17:21:10 -07:00
SkMacros.h SkTypes: more into SkMacros 2018-06-12 20:24:43 +00:00
SkMalloc.h Add 2 fuzz targets for image decoding (oss-fuzz) 2018-02-12 15:25:59 +00:00
SkMessageBus.h ccpr: Use SkMessageBus for thread-safe eviction of cache entries 2018-10-19 00:25:20 +00:00
SkMutex.h Revert "SkMath takes some functions from from SkTypes" 2018-09-07 17:32:54 +00:00
SkNoncopyable.h Move SkNoncopyable to include/private. 2018-07-17 21:39:51 +00:00
SkNx_neon.h Add GrColor4h (half-float), for use in Ops and (eventually) vertices 2018-10-29 15:11:51 +00:00
SkNx_sse.h Add GrColor4h (half-float), for use in Ops and (eventually) vertices 2018-10-29 15:11:51 +00:00
SkNx.h Add GrColor4h (half-float), for use in Ops and (eventually) vertices 2018-10-29 15:11:51 +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 Revert "replace SkNVRefCnt with SkRefCnt" 2018-10-30 15:23:06 +00:00
SkSafe32.h Revert "SkMath takes some functions from from SkTypes" 2018-09-07 17:32:54 +00:00
SkSafe_math.h Guard against buggy ucrt\math.h. 2016-11-28 15:40:23 +00:00
SkSemaphore.h Revert "SkMath takes some functions from from SkTypes" 2018-09-07 17:32: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 SkTArray: behave a little more like std::vector 2018-10-19 16:41:51 +00:00
SkTDArray.h Remove unused methods from SkTDArray 2018-10-19 21:29:08 +00:00
SkTemplates.h Remove SkAutoTCallIProc. 2018-09-20 17:42:02 +00:00
SkTFitsIn.h Reland "use std::enable_if instead of assert()" 2018-06-14 14:51:07 +00:00
SkTHash.h Mark all deleted methods private 2018-06-21 16:37:32 +00:00
SkThreadID.h Unify ThreadID. 2015-09-29 14:38:01 -07:00
SkTInternalLList.h Move SkNoncopyable to include/private. 2018-07-17 21:39:51 +00:00
SkTLogic.h require std::is_trivially_destructible 2018-06-07 16:03:31 +00:00
SkTo.h Revert "Revert "SkTypes: extract SkTo"" 2018-06-14 14:55:17 +00:00
SkTSearch.h Convert NULL and 0 to nullptr. 2017-08-28 17:48:57 +00:00
SkWeakRefCnt.h clean up some odd SkRefCnt features 2018-10-31 20:47:16 +00:00