166dbd3135
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> |
||
---|---|---|
.. | ||
gl | ||
mock | ||
mtl | ||
vk | ||
GrBackendDrawableInfo.h | ||
GrBackendSemaphore.h | ||
GrBackendSurface.h | ||
GrBlend.h | ||
GrConfig.h | ||
GrContext.h | ||
GrContextOptions.h | ||
GrDriverBugWorkarounds.h | ||
GrDriverBugWorkaroundsAutogen.h | ||
GrGpuResource.h | ||
GrRenderTarget.h | ||
GrResourceKey.h | ||
GrSamplerState.h | ||
GrSurface.h | ||
GrTexture.h | ||
GrTypes.h |