skia2/include/private
Mike Klein 166dbd3135 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>
2018-11-06 15:39:50 +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 make enum santizer fatal 2018-11-06 15:39:50 +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