| Index: src/core/SkMiniRecorder.cpp
 | 
| diff --git a/src/core/SkMiniRecorder.cpp b/src/core/SkMiniRecorder.cpp
 | 
| index 2d5b0943e58eb646e767d782017bcc431d67449f..378f4304b392d682038362cede3babc698d04b3f 100644
 | 
| --- a/src/core/SkMiniRecorder.cpp
 | 
| +++ b/src/core/SkMiniRecorder.cpp
 | 
| @@ -8,7 +8,7 @@
 | 
|  #include "SkCanvas.h"
 | 
|  #include "SkTLazy.h"
 | 
|  #include "SkMiniRecorder.h"
 | 
| -#include "SkOncePtr.h"
 | 
| +#include "SkOnce.h"
 | 
|  #include "SkPicture.h"
 | 
|  #include "SkPictureCommon.h"
 | 
|  #include "SkRecordDraw.h"
 | 
| @@ -27,7 +27,6 @@
 | 
|      int    numSlowPaths()         const override { return 0; }
 | 
|      bool   willPlayBackBitmaps()  const override { return false; }
 | 
|  };
 | 
| -SK_DECLARE_STATIC_ONCE_PTR(SkEmptyPicture, gEmptyPicture);
 | 
|  
 | 
|  template <typename T>
 | 
|  class SkMiniPicture final : public SkPicture {
 | 
| @@ -107,8 +106,13 @@
 | 
|          fState = State::kEmpty; \
 | 
|          return sk_make_sp<SkMiniPicture<Type>>(cull, reinterpret_cast<Type*>(fBuffer.get()))
 | 
|  
 | 
| +    static SkOnce once;
 | 
| +    static SkPicture* empty;
 | 
| +
 | 
|      switch (fState) {
 | 
| -        case State::kEmpty: return sk_ref_sp(gEmptyPicture.get([]{ return new SkEmptyPicture; }));
 | 
| +        case State::kEmpty:
 | 
| +            once([]{ empty = new SkEmptyPicture; });
 | 
| +            return sk_ref_sp(empty);
 | 
|          CASE(DrawBitmapRectFixedSize);
 | 
|          CASE(DrawPath);
 | 
|          CASE(DrawRect);
 | 
| 
 |