skia2/include/core
Brian Osman 60751d7a06 Sort all user-supplied rects before computeFastBounds
https://codereview.chromium.org/908353002 fixed drawRect 2+ years ago, but
drawOval and drawArc were still susceptible. This version ensures that all
rects are sorted before we do the bounds check. Added a new makeSorted
helper to simplify the code, and an assert to catch any future oversight.

All other drawing functions compute their bounds rect in some way that
already ensures it is sorted.

Bug: skia:
Change-Id: I8926b2dbe9d496d0876f1ac5313bd058ae4568b7
Reviewed-on: https://skia-review.googlesource.com/16702
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2017-05-13 22:58:17 +00:00
..
SkAnnotation.h remove unneeded flag for annotations 2016-03-05 06:00:12 -08:00
SkBBHFactory.h Remove stray semicolons. 2016-09-27 14:04:26 +00:00
SkBitmap.h Remove comments referencing locked pixels 2017-05-10 21:30:38 +00:00
SkBlendMode.h move SkBlendMode_Name into public (for chrome) 2016-11-16 19:17:21 +00:00
SkBlurTypes.h move common blur types into central header 2014-04-28 16:25:35 +00:00
SkCanvas.h add and fix parameter names 2017-05-13 18:00:48 +00:00
SkClipOp.h add flag to hide deprecated clipops 2017-05-10 18:56:14 +00:00
SkColor.h Make SkColorSetA() a constexpr function. 2017-04-07 20:21:11 +00:00
SkColorFilter.h void SkColorFilter::onAppendStages(...) 2017-05-09 20:04:44 +00:00
SkColorPriv.h Remove SK_SUPPORT_LEGACY_BROKEN_LERP support 2017-03-13 15:08:29 +00:00
SkColorSpace.h Delete SkColorSpace::ColorSpaceFlags 2017-03-24 17:11:26 +00:00
SkColorSpaceXform.h Add codec and color xform support for 565 2017-03-28 19:39:42 +00:00
SkColorSpaceXformCanvas.h Make xformer class for SkCSXCanvas, use for draw loopers 2017-03-30 18:02:58 +00:00
SkColorTable.h Revert[4] "clean up (partially) colortable api"""" 2017-04-03 19:29:38 +00:00
SkData.h Class delete call unsized delete when size not known. 2016-10-19 21:41:00 +00:00
SkDataTable.h Remove SkDataTableBuilder. It is not used. 2017-02-28 21:11:45 +00:00
SkDeque.h This CL addresses "SkCanvas::save flags are not respected by GPU backend" (https://code.google.com/p/skia/issues/detail?id=1503). 2013-08-16 00:53:34 +00:00
SkDocument.h SkXPS: new document API. 2017-02-06 19:00:28 +00:00
SkDrawable.h Make header files self-sufficient 2017-02-10 01:19:52 +00:00
SkDrawFilter.h SkPaintFilterCanvas cleanup 2016-01-12 12:14:10 -08:00
SkDrawLooper.h Make xformer class for SkCSXCanvas, use for draw loopers 2017-03-30 18:02:58 +00:00
SkEncodedImageFormat.h SkImageEncoder: simplify API 2016-11-23 16:40:32 +00:00
SkExecutor.h SkExecutor 2017-02-22 16:17:39 +00:00
SkFilterQuality.h Skia Filter Quality and Scaling Metrics 2016-04-18 09:14:00 -07:00
SkFlattenable.h SkLightingShader normal vector CPU computation refactor. 2016-06-27 11:40:45 -07:00
SkFlattenableSerialization.h hide setImageFilter(ptr) 2016-11-01 16:05:41 +00:00
SkFont.h typedef uint16_t SkGlyphID 2016-07-25 07:18:12 -07:00
SkFontArguments.h Add SkTypeface::getVariationDesignPosition. 2017-02-24 16:59:05 +00:00
SkFontLCDConfig.h Add SK_API to SkFontLCDConfig. 2016-05-03 11:56:03 -07:00
SkFontStyle.h Remove 'Ulta' width. 2016-08-02 10:43:29 -07:00
SkGraphics.h remove guard for SkImageGenerator api 2017-02-22 04:31:18 +00:00
SkICC.h Improve comment in SkICC.h 2017-02-24 20:35:57 +00:00
SkImage.h Remove SkCrossContextImageData and all support code 2017-05-11 18:07:20 +00:00
SkImageDeserializer.h Deserialize pictures with custom image-deserializer 2016-08-11 03:55:15 -07:00
SkImageEncoder.h hide lockpixels api behind flag 2017-04-17 15:33:36 +00:00
SkImageFilter.h Finish overriding onMakeColorSpace() for SkImageFilters 2017-04-17 17:17:32 +00:00
SkImageGenerator.h Add new SkImageGenerator::getPixels() API, deprecate the old 2017-05-12 16:48:17 +00:00
SkImageInfo.h Revert "explictly fail to draw unpremul, as this is buggy, incomplete, tricky, and unused" 2017-01-20 14:21:42 +00:00
SkLights.h makeColorSpace() for SkColorFilterShader and SkLightingShader 2017-04-21 19:55:23 +00:00
SkMallocPixelRef.h Only store width and height on SkPixelRef (part 2) 2017-05-01 15:01:05 +00:00
SkMask.h Add default ctor to SkMask 2015-12-17 11:33:12 -08:00
SkMaskFilter.h Consolidate Proxy caching code in GrResourceProvider 2017-03-14 14:09:12 +00:00
SkMath.h SkLiteDL: remove freelisting, add reset() and SKLITEDL_PAGE knob. 2016-08-16 09:36:18 -07:00
SkMatrix44.h Add some thread safety notes. 2017-03-02 13:44:49 +00:00
SkMatrix.h optimize intersect, use getType to utilize fast-case in preTranslate 2017-03-07 20:51:34 +00:00
SkMetaData.h "NULL !=" = NULL 2014-09-05 13:34:00 -07:00
SkMilestone.h Update Skia milestone to 60 2017-04-13 21:22:43 +00:00
SkMultiPictureDraw.h Revert[2] "Change SkCanvas to *not* inherit from SkRefCnt" 2016-11-13 18:31:13 +00:00
SkPaint.h Sort all user-supplied rects before computeFastBounds 2017-05-13 22:58:17 +00:00
SkPath.h Add some thread safety notes. 2017-03-02 13:44:49 +00:00
SkPathEffect.h move intermediate patheffect classes inside src 2017-03-09 14:46:11 +00:00
SkPathMeasure.h Move seg_to to a new header, define SkSegType enum there 2016-08-09 09:38:30 -07:00
SkPathRef.h Remove SkAutoTUnref and SkAutoTDelete from public includes. 2016-10-27 09:30:08 -07:00
SkPicture.h Initial clip-mask-layer support 2017-05-01 14:07:10 +00:00
SkPictureAnalyzer.h Revert[2] "remove SK_SUPPORT_LEGACY_CLIP_REGIONOPS" 2016-12-09 14:33:41 +00:00
SkPictureRecorder.h remove kReturnNullForEmpty_FinishFlag feature 2017-04-11 01:24:06 +00:00
SkPixelRef.h Finish removal of SkImageInfo from SkPixelRef 2017-05-04 12:54:10 +00:00
SkPixelSerializer.h SkPixelSerializer: remove deprecated virtual 2015-12-10 09:30:57 -08:00
SkPixmap.h remove vestigle code for lockpixels 2017-04-20 15:15:58 +00:00
SkPngChunkReader.h Delete SkImageDecoder 2016-03-24 10:41:47 -07:00
SkPoint3.h Update SkLightingShader to support rotation 2015-08-20 05:15:07 -07:00
SkPoint.h handle large conic weights 2016-07-13 10:56:53 -07:00
SkPostConfig.h fix SkASSERT for Visual Studio 2017-05-11 13:48:17 +00:00
SkPreConfig.h use __BYTE_ORDER__ macro to detect endianness when available 2016-11-28 21:07:47 +00:00
SkRasterHandleAllocator.h Make header files self-sufficient 2017-02-10 01:19:52 +00:00
SkRasterizer.h Revert of Delete SkFlattenable::Type (patchset #2 id:20001 of https://codereview.chromium.org/1834303003/ ) 2016-04-04 14:57:19 -07:00
SkRect.h Sort all user-supplied rects before computeFastBounds 2017-05-13 22:58:17 +00:00
SkRefCnt.h Only perform SkSafeRef race detection if on android framework 2017-03-23 14:32:47 +00:00
SkRegion.h SkRegion deserialization more robust 2017-02-18 13:34:30 +00:00
SkRRect.h Circular shadow fixes for Flutter. 2017-04-21 15:23:53 +00:00
SkRSXform.h Make header files self-sufficient 2017-02-10 01:19:52 +00:00
SkRWBuffer.h Add a SkRWBuffer reserve mechanism 2016-09-30 13:34:19 -07:00
SkScalar.h remove obsolete SK_SUPPORT_LEGACY_SCALARMUL code 2017-04-08 00:34:04 +00:00
SkShader.h Make SkCreateRasterPipelineBlitter() not fail. 2017-05-10 20:07:37 +00:00
SkSize.h SkSize can be aggregate-initialized 2017-04-11 18:57:20 +00:00
SkStream.h Remove unnecessary SkFILEStream::getMemoryBase 2017-05-01 15:17:15 +00:00
SkString.h Reverse dependency between SkScalar.h and SkFixed.h. 2016-04-07 08:49:31 -07:00
SkStrokeRec.h Unify implementations of stroking radius calculationsns 2016-04-29 07:07:03 -07:00
SkSurface.h Add backend safe classes for passing in external texture and render targets into gpu 2017-04-18 20:33:58 +00:00
SkSurfaceProps.h remove disable aa/dither flags from Props -- never used 2016-08-18 09:30:44 -07:00
SkSwizzle.h Add missing SK_API to SkSwizzle.h 2016-03-24 07:50:14 -07:00
SkTextBlob.h Purge GrTextBlobCache entries on SkTextBlob deletion 2017-03-14 14:00:13 +00:00
SkTime.h Make SkTime SK_API so that SkTime::GetDateTime() is visible to the clients. 2016-05-02 15:04:46 -07:00
SkTLazy.h Fix SkTLazy(const T*) initialization 2016-08-24 11:03:24 -07:00
SkTraceMemoryDump.h Add support for light dumps in SkTraceMemoryDump interface. 2015-09-30 04:31:23 -07:00
SkTypeface.h SkTypeface: remove old virtual onGetAdvancedMetrics, since https://crrev.com/2860293003 2017-05-05 19:08:13 +00:00
SkTypes.h Make SkNoncopyable movable 2017-04-26 01:24:24 +00:00
SkUnPreMultiply.h Factor out UnPreMultiplyPreservingByteOrder 2014-01-15 22:24:58 +00:00
SkVertices.h remove legacy vertices flag and code 2017-04-06 12:58:46 +00:00
SkWriteBuffer.h Mark overridden destructors with 'override' and remove 'virtual' 2017-03-22 16:06:18 +00:00
SkWriter32.h Remove SkWriter32::contiguousArray(). 2016-04-29 14:45:36 -07:00
SkYUVSizeInfo.h Make header files self-sufficient 2017-02-10 01:19:52 +00:00