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. |