Fix data parameter for createBuffer

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1911703002

Review URL: https://codereview.chromium.org/1911703002
diff --git a/src/gpu/GrResourceProvider.cpp b/src/gpu/GrResourceProvider.cpp
index 9a2fff3..f57d7eb 100644
--- a/src/gpu/GrResourceProvider.cpp
+++ b/src/gpu/GrResourceProvider.cpp
@@ -96,29 +96,34 @@
     if (this->isAbandoned()) {
         return nullptr;
     }
+    if (kDynamic_GrAccessPattern != accessPattern) {
+        return this->gpu()->createBuffer(size, intendedType, accessPattern, data);
+    }
 
-    if (kDynamic_GrAccessPattern == accessPattern) {
-        // bin by pow2 with a reasonable min
-        static const uint32_t MIN_SIZE = 1 << 12;
-        size = SkTMax(MIN_SIZE, GrNextPow2(SkToUInt(size)));
+    // bin by pow2 with a reasonable min
+    static const uint32_t MIN_SIZE = 1 << 12;
+    size_t allocSize = SkTMax(MIN_SIZE, GrNextPow2(SkToUInt(size)));
 
-        GrScratchKey key;
-        GrBuffer::ComputeScratchKeyForDynamicBuffer(size, intendedType, &key);
-        uint32_t scratchFlags = 0;
-        if (flags & kNoPendingIO_Flag) {
-            scratchFlags = GrResourceCache::kRequireNoPendingIO_ScratchFlag;
-        } else {
-            scratchFlags = GrResourceCache::kPreferNoPendingIO_ScratchFlag;
-        }
-        GrGpuResource* resource = this->cache()->findAndRefScratchResource(key, size, scratchFlags);
-        if (GrBuffer* buffer = static_cast<GrBuffer*>(resource)) {
-            if (data) {
-                buffer->updateData(data, size);
-            }
-            return buffer;
+    GrScratchKey key;
+    GrBuffer::ComputeScratchKeyForDynamicBuffer(allocSize, intendedType, &key);
+    uint32_t scratchFlags = 0;
+    if (flags & kNoPendingIO_Flag) {
+        scratchFlags = GrResourceCache::kRequireNoPendingIO_ScratchFlag;
+    } else {
+        scratchFlags = GrResourceCache::kPreferNoPendingIO_ScratchFlag;
+    }
+    GrBuffer* buffer = static_cast<GrBuffer*>(
+        this->cache()->findAndRefScratchResource(key, allocSize, scratchFlags));
+    if (!buffer) {
+        buffer = this->gpu()->createBuffer(allocSize, intendedType, kDynamic_GrAccessPattern);
+        if (!buffer) {
+            return nullptr;
         }
     }
-    return this->gpu()->createBuffer(size, intendedType, accessPattern, data);
+    if (data) {
+        buffer->updateData(data, size);
+    }
+    return buffer;
 }
 
 GrBatchAtlas* GrResourceProvider::createAtlas(GrPixelConfig config,