skia2/include/core
scroggo d06920a29f Fixes for SkRWBuffer
Do not call SkBufferHead::validate in SkROBuffer's destructor, which
may be called in a separate thread from SkRWBuffer::append. validate()
reads SkBufferBlock::fUsed, and append() writes to it, resulting in
a data race.

Update some comments to be more clear about how it is safe to use
these classes across threads.

Test the readers in separate threads.

In addition, make sure it is safe to create a reader even when no
data has been appended. Add tests for this case.

Mark a parameter to SkBufferHead::validate() as const, reflecting
its use.

BUG=chromium:601578
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1871953002

Review URL: https://codereview.chromium.org/1871953002
2016-04-14 11:40:48 -07:00
..
SkAnnotation.h remove unneeded flag for annotations 2016-03-05 06:00:12 -08:00
SkBBHFactory.h Revert of Add non-inline SkRTreeFactory constructor to fix clang-cl (patchset #2 id:20001 of https://codereview.chromium.org/1676833002/ ) 2016-02-26 16:31:12 -08:00
SkBitmap.h SkBitmap move 2015-12-14 10:19:17 -08:00
SkBitmapDevice.h switch surface to sk_sp 2016-03-23 18:59:25 -07:00
SkBlitRow.h Port SkBlitRow::Color32 to SkOpts. 2015-09-10 10:38:02 -07:00
SkBlurTypes.h move common blur types into central header 2014-04-28 16:25:35 +00:00
SkCanvas.h SkSurfaceProps now has a gamma-correct ("AllowSRGBInputs") flag. That's propagated in a few places so that the backend can do the right thing for L32 vs S32 mode. 2016-04-06 07:38:23 -07:00
SkChunkAlloc.h Add rewind capability to SkChunkAlloc 2015-02-27 08:31:57 -08:00
SkClipStack.h Add asRRect method to SkClipStack::Element 2016-03-17 12:56:11 -07:00
SkColor.h make SkPM4f private 2016-02-18 12:39:14 -08:00
SkColorFilter.h Revert of Delete SkFlattenable::Type (patchset #2 id:20001 of https://codereview.chromium.org/1834303003/ ) 2016-04-04 14:57:19 -07:00
SkColorPriv.h Change SkUnitScalarClampToByte to more accurate implementation. 2016-02-24 10:07:52 -08:00
SkColorTable.h use allocator (if present) when we allocate our cache bitmap 2015-09-17 13:35:19 -07:00
SkData.h Make sp variants for SkData 2016-03-11 13:02:28 -08:00
SkDataTable.h Move SkTDArray to private. 2016-02-18 08:53:33 -08: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
SkDevice.h SkSurfaceProps now has a gamma-correct ("AllowSRGBInputs") flag. That's propagated in a few places so that the backend can do the right thing for L32 vs S32 mode. 2016-04-06 07:38:23 -07:00
SkDocument.h SkDocument: remove use of SkTArray (part 3/3). 2016-02-12 07:26:46 -08:00
SkDraw.h Decouple contrast boost from fake gamma. 2016-04-08 06:47:54 -07:00
SkDrawable.h add matrix options to drawDrawable 2015-07-07 10:22:31 -07:00
SkDrawFilter.h SkPaintFilterCanvas cleanup 2016-01-12 12:14:10 -08:00
SkDrawLooper.h Revert of Delete SkFlattenable::Type (patchset #2 id:20001 of https://codereview.chromium.org/1834303003/ ) 2016-04-04 14:57:19 -07:00
SkError.h Sanitizing source files in Housekeeper-Nightly 2013-09-05 07:01:19 +00:00
SkFilterQuality.h add newImage API 2015-01-23 05:58:07 -08:00
SkFlattenable.h Revert of Delete SkFlattenable::Type (patchset #2 id:20001 of https://codereview.chromium.org/1834303003/ ) 2016-04-04 14:57:19 -07:00
SkFlattenableSerialization.h Revert of Delete SkFlattenable::Type (part 1) (patchset #1 id:1 of https://codereview.chromium.org/1861013002/ ) 2016-04-05 12:00:49 -07:00
SkFont.h Treat embedded bitmaps as a hinting method. 2014-08-19 13:18:58 -07:00
SkFontHost.h Remove a layer of indirection and code from SkFontHost. 2014-09-10 15:49:48 -07:00
SkFontLCDConfig.h Sanitizing source files in Skia_Periodic_House_Keeping 2013-03-13 07:01:04 +00:00
SkFontStyle.h Begin switch to SkFontStyle for legacy calls. 2016-04-12 13:45:06 -07:00
SkGraphics.h add SkGraphics::PurageAllCaches 2016-02-22 06:19:54 -08:00
SkImage.h Add deferred texture upload API. 2016-03-11 06:46:33 -08:00
SkImageEncoder.h Delete SkImageDecoder 2016-03-24 10:41:47 -07:00
SkImageFilter.h Switch AlphaThresholdFilter over to new onFilterImage interface 2016-04-12 11:02:25 -07:00
SkImageGenerator.h Update Skia's YUV API 2016-03-10 05:44:43 -08:00
SkImageInfo.h SkSurfaceProps now has a gamma-correct ("AllowSRGBInputs") flag. That's propagated in a few places so that the backend can do the right thing for L32 vs S32 mode. 2016-04-06 07:38:23 -07:00
SkMallocPixelRef.h For non-opaque SkBitmapDevices, replace malloc-then-zero with calloc. 2015-11-05 09:46:23 -08:00
SkMask.h Add default ctor to SkMask 2015-12-17 11:33:12 -08:00
SkMaskFilter.h Revert of Delete SkFlattenable::Type (patchset #2 id:20001 of https://codereview.chromium.org/1834303003/ ) 2016-04-04 14:57:19 -07:00
SkMath.h Remove version checks for _MSC_VER < 1800 (msvs2013). 2016-03-10 11:14:40 -08:00
SkMatrix.h Change SkMatrix::fixedStepInX to return SkVector (of SkScalar) rather than SkFixed. 2016-02-16 10:09:40 -08:00
SkMetaData.h "NULL !=" = NULL 2014-09-05 13:34:00 -07:00
SkMilestone.h Update Skia milestone to 52 2016-04-07 22:58:19 -07:00
SkMultiPictureDraw.h Move SkTDArray to private. 2016-02-18 08:53:33 -08:00
SkOSFile.h add fsync to try to get complete skps from webpage picture capture 2015-12-16 13:41:23 -08:00
SkPaint.h Revert "Revert of Pass effects directly to fontcache (patchset #8 id:140001 of https://codereview.chromium.org/1863013003/ )" 2016-04-12 06:47:05 -07:00
SkPath.h allow move/zero-line/close to draw caps 2016-02-22 12:44:54 -08:00
SkPathEffect.h Revert of Delete SkFlattenable::Type (patchset #2 id:20001 of https://codereview.chromium.org/1834303003/ ) 2016-04-04 14:57:19 -07:00
SkPathMeasure.h fix path getSegment comment 2016-03-23 11:15:57 -07:00
SkPathRef.h Convert SkRefCnt to std::atomic. 2016-04-08 06:58:52 -07:00
SkPicture.h Serialize invNormRotation in SkLightingShader. 2016-04-08 12:19:50 -07:00
SkPictureRecorder.h return pictures as sk_sp 2016-03-18 07:25:55 -07:00
SkPixelRef.h Upgrade SkSpecialImage to have getTextureRef & getROPixels entry points 2016-04-08 12:10:42 -07:00
SkPixelSerializer.h SkPixelSerializer: remove deprecated virtual 2015-12-10 09:30:57 -08:00
SkPixmap.h Add rowBytesAsPixels and shiftPerPixel to SkPixmap 2016-03-24 11:21:25 -07: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 Revert of Revert of stop calling SkScalarDiv (patchset #1 id:1 of https://codereview.chromium.org/1138263002/) 2015-05-12 10:37:34 -07:00
SkPostConfig.h Revert of Skia Filter Quality and Scaling Metrics (patchset #3 id:60001 of https://codereview.chromium.org/1686203002/ ) 2016-02-25 22:15:29 -08:00
SkPreConfig.h force no SSE on iOS simulator 2016-03-23 12:54:54 -07: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 Cleanups related to SkFixed. 2016-02-25 10:28:11 -08:00
SkRefCnt.h For GOOGLE3, add deref method to SkRefCnt. 2016-04-13 17:51:57 -07:00
SkRegion.h Remove useless SkASSERT in SkRect.h and SkRegion.h 2015-04-28 12:47:48 -07:00
SkRRect.h make transformed rrect radii fit rectangle 2016-02-23 10:32:40 -08:00
SkRSXform.h add helper to create RSXform w/ anchorPt 2015-07-30 05:46:05 -07:00
SkRWBuffer.h Fixes for SkRWBuffer 2016-04-14 11:40:48 -07:00
SkScalar.h Reverse dependency between SkScalar.h and SkFixed.h. 2016-04-07 08:49:31 -07:00
SkShader.h Revert of Delete SkFlattenable::Type (patchset #2 id:20001 of https://codereview.chromium.org/1834303003/ ) 2016-04-04 14:57:19 -07:00
SkSize.h deprecate SkScalarRound (and its ilk), use SkScalarRound[ToInt,ToScalar]. #define SK_SUPPORT_DEPRECATED_SCALARROUND for legacy clients 2013-12-17 19:22:07 +00:00
SkStream.h SkWStream::writeText inlined. 2016-04-11 19:41:48 -07:00
SkString.h Reverse dependency between SkScalar.h and SkFixed.h. 2016-04-07 08:49:31 -07:00
SkStrokeRec.h resolution dependent path measure 2016-01-21 07:07:02 -08:00
SkSurface.h Fix legacy NewRenderTarget factory 2016-04-13 15:10:20 -07:00
SkSurfaceProps.h Tweak distance field path renderer behavior in gamma-correct mode to match 2016-04-13 13:56:21 -07:00
SkSwizzle.h Add missing SK_API to SkSwizzle.h 2016-03-24 07:50:14 -07:00
SkTextBlob.h Move SkTArray to include/private. 2016-02-17 13:13:44 -08:00
SkTime.h Change SkTime::GetMSecs to double; ensure values stored in SkMSec do not overflow. 2016-03-25 12:59:53 -07:00
SkTLazy.h Fix typo in SkTLazy copy ctor. src is a reference, not a pointer. 2016-03-25 09:11:35 -07:00
SkTraceMemoryDump.h Add support for light dumps in SkTraceMemoryDump interface. 2015-09-30 04:31:23 -07:00
SkTRegistry.h Rewrite SkTRegistry to take any trivially-copyable type. 2013-09-04 17:20:18 +00:00
SkTypeface.h remove SK_SUPPORT_NEW_ONCREATESCALERCONTEXT, no longer needed in chdrome 2016-04-12 16:57:55 -07:00
SkTypes.h Change SkTime::GetMSecs to double; ensure values stored in SkMSec do not overflow. 2016-03-25 12:59:53 -07:00
SkUnPreMultiply.h Factor out UnPreMultiplyPreservingByteOrder 2014-01-15 22:24:58 +00:00
SkWriteBuffer.h Reverse dependency between SkScalar.h and SkFixed.h. 2016-04-07 08:49:31 -07:00
SkWriter32.h Make sp variants for SkData 2016-03-11 13:02:28 -08:00
SkXfermode.h remove U16 support, just support F16 2016-04-14 09:02:14 -07:00
SkYUVSizeInfo.h Update Skia's YUV API 2016-03-10 05:44:43 -08:00