update NeedsDeepCopy
authorcommit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81>
Wed, 14 May 2014 16:32:31 +0000 (16:32 +0000)
committercommit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81>
Wed, 14 May 2014 16:32:31 +0000 (16:32 +0000)
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

src/core/SkPaintPriv.cpp

index 8021f7df83f030b58601a7d8de48dd25d0cd8350..a8b52e998c7b789e3ad5fe426d71888e04321924 100644 (file)
@@ -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()
+           ;
 }