remove kReturnNullForEmpty_FinishFlag feature

It's unused, and doesn't appear to be correct, returning nullptr too
early when we should return a non-empty SkMiniPicture.

The mini-recorder path will return a zero-allocation SkEmptyPicture anyway.

Change-Id: I1be538049e731acfc2b0f8b4f30cafee434a91dc
Reviewed-on: https://skia-review.googlesource.com/12626
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
diff --git a/include/core/SkPictureRecorder.h b/include/core/SkPictureRecorder.h
index 9e29e0d..d898b91 100644
--- a/include/core/SkPictureRecorder.h
+++ b/include/core/SkPictureRecorder.h
@@ -38,7 +38,6 @@
     };
 
     enum FinishFlags {
-        kReturnNullForEmpty_FinishFlag  = 1 << 0,   // no draw-ops will return nullptr
     };
 
     /** Returns the canvas that records the drawing commands.
diff --git a/src/core/SkPictureRecorder.cpp b/src/core/SkPictureRecorder.cpp
index aaf1d0d..701df7d 100644
--- a/src/core/SkPictureRecorder.cpp
+++ b/src/core/SkPictureRecorder.cpp
@@ -56,21 +56,12 @@
     fRecorder->restoreToCount(1);  // If we were missing any restores, add them now.
 
     if (fRecord->count() == 0) {
-        if (finishFlags & kReturnNullForEmpty_FinishFlag) {
-            return nullptr;
-        }
         return fMiniRecorder.detachAsPicture(fCullRect);
     }
 
     // TODO: delay as much of this work until just before first playback?
     SkRecordOptimize(fRecord.get());
 
-    if (fRecord->count() == 0) {
-        if (finishFlags & kReturnNullForEmpty_FinishFlag) {
-            return nullptr;
-        }
-    }
-
     SkDrawableList* drawableList = fRecorder->getDrawableList();
     SkBigPicture::SnapshotArray* pictList =
         drawableList ? drawableList->newDrawableSnapshot() : nullptr;
@@ -125,12 +116,6 @@
 
     SkRecordOptimize(fRecord.get());
 
-    if (fRecord->count() == 0) {
-        if (finishFlags & kReturnNullForEmpty_FinishFlag) {
-            return nullptr;
-        }
-    }
-
     if (fBBH.get()) {
         SkAutoTMalloc<SkRect> bounds(fRecord->count());
         SkRecordFillBounds(fCullRect, *fRecord, bounds);
diff --git a/tests/PictureTest.cpp b/tests/PictureTest.cpp
index 0b929d6..07cbccc 100644
--- a/tests/PictureTest.cpp
+++ b/tests/PictureTest.cpp
@@ -1136,67 +1136,3 @@
 }
 
 #endif // SK_SUPPORT_GPU
-
-///////////////////////////////////////////////////////////////////////////////////////////////////
-
-// Disable until we properly fix https://bugs.chromium.org/p/skia/issues/detail?id=5548
-#if 0
-static void empty_ops(SkCanvas* canvas) {
-}
-static void clip_ops(SkCanvas* canvas) {
-    canvas->save();
-    canvas->clipRect(SkRect::MakeWH(20, 20));
-    canvas->restore();
-}
-static void matrix_ops(SkCanvas* canvas) {
-    canvas->save();
-    canvas->scale(2, 3);
-    canvas->restore();
-}
-static void matrixclip_ops(SkCanvas* canvas) {
-    canvas->save();
-    canvas->scale(2, 3);
-    canvas->clipRect(SkRect::MakeWH(20, 20));
-    canvas->restore();
-}
-typedef void (*CanvasProc)(SkCanvas*);
-
-// Test the kReturnNullForEmpty_FinishFlag option when recording
-//
-DEF_TEST(Picture_RecordEmpty, r) {
-    const SkRect cull = SkRect::MakeWH(100, 100);
-
-    CanvasProc procs[] { empty_ops, clip_ops, matrix_ops, matrixclip_ops };
-
-    for (auto proc : procs) {
-        {
-            SkPictureRecorder rec;
-            proc(rec.beginRecording(cull));
-            sk_sp<SkPicture> pic = rec.finishRecordingAsPicture(0);
-            REPORTER_ASSERT(r, pic.get());
-            REPORTER_ASSERT(r, pic->approximateOpCount() == 0);
-        }
-        {
-            SkPictureRecorder rec;
-            proc(rec.beginRecording(cull));
-            sk_sp<SkPicture> pic = rec.finishRecordingAsPicture(
-                                                 SkPictureRecorder::kReturnNullForEmpty_FinishFlag);
-            REPORTER_ASSERT(r, !pic.get());
-        }
-        {
-            SkPictureRecorder rec;
-            proc(rec.beginRecording(cull));
-            sk_sp<SkDrawable> dr = rec.finishRecordingAsDrawable(0);
-            REPORTER_ASSERT(r, dr.get());
-        }
-        {
-            SkPictureRecorder rec;
-            proc(rec.beginRecording(cull));
-            sk_sp<SkDrawable> dr = rec.finishRecordingAsDrawable(
-                                                 SkPictureRecorder::kReturnNullForEmpty_FinishFlag);
-            REPORTER_ASSERT(r, !dr.get());
-        }
-    }
-}
-#endif
-