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
This commit is contained in:
parent
29dd813b13
commit
c8be09aaf2
@ -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 @@ Error RasterSink::draw(const Src& src, SkBitmap* dst, SkWStream*, SkString*) con
|
||||
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);
|
||||
}
|
||||
|
@ -99,10 +99,6 @@ SkSurface_Raster::SkSurface_Raster(SkPixelRef* pr, const SkSurfaceProps* props)
|
||||
fBitmap.setInfo(info, info.minRowBytes());
|
||||
fBitmap.setPixelRef(pr);
|
||||
fWeOwnThePixels = true;
|
||||
|
||||
if (!info.isOpaque()) {
|
||||
fBitmap.eraseColor(SK_ColorTRANSPARENT);
|
||||
}
|
||||
}
|
||||
|
||||
SkCanvas* SkSurface_Raster::onNewCanvas() { return new SkCanvas(fBitmap, this->props()); }
|
||||
@ -185,7 +181,7 @@ SkSurface* SkSurface::NewRaster(const SkImageInfo& info, const SkSurfaceProps* p
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
SkAutoTUnref<SkPixelRef> pr(SkMallocPixelRef::NewAllocate(info, 0, nullptr));
|
||||
SkAutoTUnref<SkPixelRef> pr(SkMallocPixelRef::NewZeroed(info, 0, nullptr));
|
||||
if (nullptr == pr.get()) {
|
||||
return nullptr;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user