update NeedsDeepCopy
BUG=skia:
R=mtklein@google.com, scroggo@google.com, dominikg@chromium.org
Author: reed@google.com
Review URL: https://codereview.chromium.org/289723002
git-svn-id: http://skia.googlecode.com/svn/trunk@14736 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/src/core/SkPaintPriv.cpp b/src/core/SkPaintPriv.cpp
index 8021f7d..a8b52e9 100644
--- a/src/core/SkPaintPriv.cpp
+++ b/src/core/SkPaintPriv.cpp
@@ -79,20 +79,19 @@
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() ||
-#ifdef SK_SUPPORT_LEGACY_LAYERRASTERIZER_API
- paint.getRasterizer() ||
+ return false
+#ifdef SK_SUPPORT_LEGACY_SHADER_LOCALMATRIX
+ || paint.getShader()
#endif
- paint.getLooper() || // needs to hide its addLayer...
- paint.getImageFilter();
+#ifdef SK_SUPPORT_LEGACY_LAYERRASTERIZER_API
+ || paint.getRasterizer()
+#endif
+ || paint.getImageFilter()
+ ;
}