use tmp allocator for images in temp shaders

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2222593003

Review-Url: https://codereview.chromium.org/2222593003
diff --git a/src/image/SkImage_Raster.cpp b/src/image/SkImage_Raster.cpp
index 645a3db..67d521e 100644
--- a/src/image/SkImage_Raster.cpp
+++ b/src/image/SkImage_Raster.cpp
@@ -7,6 +7,7 @@
 
 #include "SkImage_Base.h"
 #include "SkBitmap.h"
+#include "SkBitmapProcShader.h"
 #include "SkCanvas.h"
 #include "SkColorTable.h"
 #include "SkData.h"
@@ -254,7 +255,8 @@
     return sk_make_sp<SkImage_Raster>(info, pr, pixelRefOrigin, rowBytes);
 }
 
-sk_sp<SkImage> SkMakeImageFromRasterBitmap(const SkBitmap& bm, SkCopyPixelsMode cpm) {
+sk_sp<SkImage> SkMakeImageFromRasterBitmap(const SkBitmap& bm, SkCopyPixelsMode cpm,
+                                           SkTBlitterAllocator* allocator) {
     bool hasColorTable = false;
     if (kIndex_8_SkColorType == bm.colorType()) {
         SkAutoLockPixels autoLockPixels(bm);
@@ -274,7 +276,12 @@
             image = SkImage::MakeRasterCopy(pmap);
         }
     } else {
-        image = sk_make_sp<SkImage_Raster>(bm, kNever_SkCopyPixelsMode == cpm);
+        if (allocator) {
+            image.reset(allocator->createT<SkImage_Raster>(bm, kNever_SkCopyPixelsMode == cpm));
+            image.get()->ref(); // account for the allocator being an owner
+        } else {
+            image = sk_make_sp<SkImage_Raster>(bm, kNever_SkCopyPixelsMode == cpm);
+        }
     }
     return image;
 }