Two malloc+bzero -> calloc.
I was profiling DM and noticed a couple spots where we malloc then bzero.
These might as well call calloc instead:
- any time DM itself allocates bitmaps for raster drawing;
- any time Skia allocates memory for a raster SkSurface.
We could use malloc for opaque surfaces, but it seems simpler to always calloc.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1557713003
Review URL: https://codereview.chromium.org/1557713003
diff --git a/dm/DMSrcSink.cpp b/dm/DMSrcSink.cpp
index 5bc5e5a..fa600ff 100644
--- a/dm/DMSrcSink.cpp
+++ b/dm/DMSrcSink.cpp
@@ -14,6 +14,7 @@
#include "SkDocument.h"
#include "SkError.h"
#include "SkImageGenerator.h"
+#include "SkMallocPixelRef.h"
#include "SkMultiPictureDraw.h"
#include "SkNullCanvas.h"
#include "SkOSFile.h"
@@ -973,8 +974,10 @@
SkAlphaType alphaType = kPremul_SkAlphaType;
(void)SkColorTypeValidateAlphaType(fColorType, alphaType, &alphaType);
- dst->allocPixels(SkImageInfo::Make(size.width(), size.height(), fColorType, alphaType));
- dst->eraseColor(SK_ColorTRANSPARENT);
+ SkMallocPixelRef::ZeroedPRFactory factory;
+ dst->allocPixels(SkImageInfo::Make(size.width(), size.height(), fColorType, alphaType),
+ &factory,
+ nullptr/*colortable*/);
SkCanvas canvas(*dst);
return src.draw(&canvas);
}