Check for failed proxy creation in SkDeferredDisplayListRecorder::init

Bug: chromium:227776
Change-Id: I4f628b76aa08c4a3cdc858cd4263a4b6afee7332
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/227837
Auto-Submit: Brian Salomon <bsalomon@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
diff --git a/src/core/SkDeferredDisplayListRecorder.cpp b/src/core/SkDeferredDisplayListRecorder.cpp
index a17f8a4..f0081f1 100644
--- a/src/core/SkDeferredDisplayListRecorder.cpp
+++ b/src/core/SkDeferredDisplayListRecorder.cpp
@@ -180,6 +180,10 @@
             SkBudgeted::kYes,
             fCharacterization.vulkanSecondaryCBCompatible());
 
+    if (!proxy) {
+        return false;
+    }
+
     sk_sp<GrSurfaceContext> c = fContext->priv().makeWrappedSurfaceContext(
             std::move(proxy),
             grColorType,
diff --git a/src/gpu/GrRecordingContext.cpp b/src/gpu/GrRecordingContext.cpp
index cac1492..d007202 100644
--- a/src/gpu/GrRecordingContext.cpp
+++ b/src/gpu/GrRecordingContext.cpp
@@ -151,6 +151,8 @@
         const SkSurfaceProps* props) {
     ASSERT_SINGLE_OWNER_PRIV
 
+    SkASSERT(proxy);
+
     if (proxy->asRenderTargetProxy()) {
         SkASSERT(kPremul_SkAlphaType == alphaType || kOpaque_SkAlphaType == alphaType);
         return this->drawingManager()->makeRenderTargetContext(std::move(proxy), colorType,