diff options
author | commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2014-05-02 20:28:56 +0000 |
---|---|---|
committer | commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2014-05-02 20:28:56 +0000 |
commit | d87030629d8239c3e8c8c3868d6d42f16c934aa8 (patch) | |
tree | a7c4722556d1226f08adbf6ce8f3626038ae715f | |
parent | fa2a9d0672d7d30bb37b8fc2e62b5c93e2fa314c (diff) | |
download | include-d87030629d8239c3e8c8c3868d6d42f16c934aa8.tar.gz |
Choose memset procs once.
TSAN shows us racing on the function pointers. Might as well fix it.
WARNING: ThreadSanitizer: data race (pid=19995)
Read of size 8 at 0x7f703affb048 by thread T12 (mutexes: write M2957):
#0 SkBitmap::internalErase(SkIRect const&, unsigned int, unsigned int, unsigned int, unsigned int) const /var/scratch/Release/../../../usr/local/google/home/mtklein/skia/src/core/SkBitmap.cpp:886 (tests+0x0000003511ca)
#1 SkBitmap::eraseARGB(unsigned int, unsigned int, unsigned int, unsigned int) const /var/scratch/Release/../../../usr/local/google/home/mtklein/skia/src/core/SkBitmap.cpp:919 (tests+0x0000003534bf)
#2 (anonymous namespace)::DecodingImageGenerator::getPixels(SkImageInfo const&, void*, unsigned long) /var/scratch/Release/../../../usr/local/google/home/mtklein/skia/src/images/SkDecodingImageGenerator.cpp:195 (tests+0x00000051bee1)
#3 SkDiscardablePixelRef::onNewLockPixels(SkPixelRef::LockRec*) /var/scratch/Release/../../../usr/local/google/home/mtklein/skia/src/lazy/SkDiscardablePixelRef.cpp:63 (tests+0x00000039ad9c)
#4 SkPixelRef::lockPixels(SkPixelRef::LockRec*) /var/scratch/Release/../../../usr/local/google/home/mtklein/skia/src/core/SkPixelRef.cpp:179 (tests+0x0000003fec23)
#5 SkBitmap::lockPixels() const /var/scratch/Release/../../../usr/local/google/home/mtklein/skia/src/core/SkBitmap.cpp:414 (tests+0x00000034e41e)
#6 SkAutoLockPixels /var/scratch/Release/../../../usr/local/google/home/mtklein/skia/include/core/SkBitmap.h:819 (tests+0x0000002752f3)
#7 ImageDecoderOptions(skiatest::Reporter*) /var/scratch/Release/../../../usr/local/google/home/mtklein/skia/tests/ImageDecodingTest.cpp:565 (tests+0x000000275d03)
#8 skiatest::Test::run() /var/scratch/Release/../../../usr/local/google/home/mtklein/skia/tests/Test.cpp:107 (tests+0x0000002263e7)
#9 SkTestRunnable::run() /var/scratch/Release/../../../usr/local/google/home/mtklein/skia/tests/skia_test.cpp:108 (tests+0x0000001d8607)
#10 SkThreadPoolPrivate::ThreadLocal<void>::run(SkTRunnable<void>*) /var/scratch/Release/../../../usr/local/google/home/mtklein/skia/include/utils/SkThreadPool.h:108 (tests+0x0000001d817e)
#11 thread_start(void*) /var/scratch/Release/../../../usr/local/google/home/mtklein/skia/src/utils/SkThreadUtils_pthread.cpp:66 (tests+0x000000604347)
Previous write of size 8 at 0x7f703affb048 by thread T26:
[failed to restore the stack]
BUG=skia:1792
R=bungeman@google.com, mtklein@google.com, reed@google.com
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/250503003
git-svn-id: http://skia.googlecode.com/svn/trunk/include@14548 2bbb7eff-a529-9590-31e7-b0007b416f81
-rw-r--r-- | core/SkUtils.h | 12 |
1 files changed, 2 insertions, 10 deletions
diff --git a/core/SkUtils.h b/core/SkUtils.h index d6bf8dd..996a82e 100644 --- a/core/SkUtils.h +++ b/core/SkUtils.h @@ -17,7 +17,7 @@ @param value The 16bit value to be copied into buffer @param count The number of times value should be copied into the buffer. */ -void sk_memset16_portable(uint16_t dst[], uint16_t value, int count); +void sk_memset16(uint16_t dst[], uint16_t value, int count); typedef void (*SkMemset16Proc)(uint16_t dst[], uint16_t value, int count); SkMemset16Proc SkMemset16GetPlatformProc(); @@ -26,18 +26,10 @@ SkMemset16Proc SkMemset16GetPlatformProc(); @param value The 32bit value to be copied into buffer @param count The number of times value should be copied into the buffer. */ -void sk_memset32_portable(uint32_t dst[], uint32_t value, int count); +void sk_memset32(uint32_t dst[], uint32_t value, int count); typedef void (*SkMemset32Proc)(uint32_t dst[], uint32_t value, int count); SkMemset32Proc SkMemset32GetPlatformProc(); -#ifndef sk_memset16 -extern SkMemset16Proc sk_memset16; -#endif - -#ifndef sk_memset32 -extern SkMemset32Proc sk_memset32; -#endif - /////////////////////////////////////////////////////////////////////////////// #define kMaxBytesInUTF8Sequence 4 |