mark some init function as being safe for thread_sanitizer.

introduces the macro WEBP_TSAN_IGNORE_FUNCTION

Change-Id: I3de2b6c1a2076fba4da7ae50322551e026b2082b
This commit is contained in:
Pascal Massimino
2014-10-16 16:34:07 +02:00
parent 79b5bdbfde
commit 80247291c6
25 changed files with 75 additions and 64 deletions

View File

@ -28,14 +28,14 @@ typedef union { // handy struct for converting SSE2 registers
#include "./yuv_tables_sse2.h"
void VP8YUVInitSSE2(void) {}
void VP8YUVInitSSE2(void) WEBP_TSAN_IGNORE_FUNCTION {}
#else
static int done_sse2 = 0;
static VP8kCstSSE2 VP8kUtoRGBA[256], VP8kVtoRGBA[256], VP8kYtoRGBA[256];
void VP8YUVInitSSE2(void) {
void VP8YUVInitSSE2(void) WEBP_TSAN_IGNORE_FUNCTION {
if (!done_sse2) {
int i;
for (i = 0; i < 256; ++i) {
@ -309,9 +309,9 @@ static void YuvToBgrRowSSE2(const uint8_t* y,
//------------------------------------------------------------------------------
// Entry point
extern void WebPInitSamplersSSE2(void);
extern void WebPInitSamplersSSE2(void) WEBP_TSAN_IGNORE_FUNCTION;
void WebPInitSamplersSSE2(void) {
void WebPInitSamplersSSE2(void) WEBP_TSAN_IGNORE_FUNCTION {
#if defined(WEBP_USE_SSE2)
WebPSamplers[MODE_RGB] = YuvToRgbRowSSE2;
WebPSamplers[MODE_RGBA] = YuvToRgbaRowSSE2;