Index: src/core/SkPaintPriv.cpp |
diff --git a/src/core/SkPaintPriv.cpp b/src/core/SkPaintPriv.cpp |
index 8021f7df83f030b58601a7d8de48dd25d0cd8350..a8b52e998c7b789e3ad5fe426d71888e04321924 100644 |
--- a/src/core/SkPaintPriv.cpp |
+++ b/src/core/SkPaintPriv.cpp |
@@ -79,20 +79,19 @@ bool isPaintOpaque(const SkPaint* paint, |
bool NeedsDeepCopy(const SkPaint& paint) { |
/* |
- * These fields are known to be immutable, and so can be shallow-copied |
+ * The types below are not yet immutable/reentrant-safe, and so we return |
+ * true if instances of them are present in the paint. |
* |
- * getTypeface() |
- * getAnnotation() |
- * paint.getColorFilter() |
- * getXfermode() |
- * getPathEffect() |
- * getMaskFilter() |
+ * Eventually we hope this list will be empty, and we can always return |
+ * false. |
*/ |
- |
- return paint.getShader() || |
+ return false |
+#ifdef SK_SUPPORT_LEGACY_SHADER_LOCALMATRIX |
+ || paint.getShader() |
+#endif |
#ifdef SK_SUPPORT_LEGACY_LAYERRASTERIZER_API |
- paint.getRasterizer() || |
+ || paint.getRasterizer() |
#endif |
- paint.getLooper() || // needs to hide its addLayer... |
- paint.getImageFilter(); |
+ || paint.getImageFilter() |
+ ; |
} |