Chromium Code Reviews| Index: src/pdf/SkPDFShader.cpp |
| diff --git a/src/pdf/SkPDFShader.cpp b/src/pdf/SkPDFShader.cpp |
| index 62adf5811db5a3672f73f5e1a8796b6c2596b779..c4d362baa573077430126b38cd11cc5f58bfa2cb 100644 |
| --- a/src/pdf/SkPDFShader.cpp |
| +++ b/src/pdf/SkPDFShader.cpp |
| @@ -602,6 +602,7 @@ SkPDFObject* SkPDFShader::GetPDFShaderByState(State* inState) { |
| return NULL; |
| } |
| + SkPDFShader::CanonicalShadersMutex().assertHeld(); |
|
mtklein
2014/06/20 17:40:54
Seems redundant? Just let CanonicalShaders() do i
hal.canary
2014/06/20 17:49:07
Done.
|
| ShaderCanonicalEntry entry(NULL, shaderState.get()); |
| int index = CanonicalShaders().find(entry); |
| if (index >= 0) { |
| @@ -635,6 +636,7 @@ SkPDFObject* SkPDFShader::GetPDFShaderByState(State* inState) { |
| return NULL; |
| } |
| entry.fPDFShader = result; |
| + SkPDFShader::CanonicalShadersMutex().assertHeld(); |
|
mtklein
2014/06/20 17:40:56
Ditto.
hal.canary
2014/06/20 17:49:06
Done.
|
| CanonicalShaders().push(entry); |
| return result; // return the reference that came from new. |
| } |
| @@ -659,6 +661,7 @@ SkPDFObject* SkPDFShader::GetPDFShader(const SkShader& shader, |
| // static |
| SkTDArray<SkPDFShader::ShaderCanonicalEntry>& SkPDFShader::CanonicalShaders() { |
| + SkPDFShader::CanonicalShadersMutex().assertHeld(); |
| // This initialization is only thread safe with gcc. |
| static SkTDArray<ShaderCanonicalEntry> gCanonicalShaders; |
| return gCanonicalShaders; |
| @@ -674,7 +677,7 @@ SkBaseMutex& SkPDFShader::CanonicalShadersMutex() { |
| // static |
| SkPDFObject* SkPDFFunctionShader::RangeObject() { |
| - // This initialization is only thread safe with gcc. |
| + SkPDFShader::CanonicalShadersMutex().assertHeld(); |
| static SkPDFArray* range = NULL; |
| // This method is only used with CanonicalShadersMutex, so it's safe to |
| // populate domain. |