Chromium Code Reviews| Index: src/gpu/GrBatchAtlas.cpp |
| diff --git a/src/gpu/GrBatchAtlas.cpp b/src/gpu/GrBatchAtlas.cpp |
| index 0bcd2f9e06325cd81bcbcce2435d104a6f83b027..cd655242ba851ebd200d20d4da2c2ab3e55d5511 100644 |
| --- a/src/gpu/GrBatchAtlas.cpp |
| +++ b/src/gpu/GrBatchAtlas.cpp |
| @@ -50,7 +50,9 @@ public: |
| return false; |
| } |
| - SkASSERT(fData); |
| + if (!fData) { |
| + fData = reinterpret_cast<unsigned char*>(sk_calloc_throw(fBytesPerPixel * fWidth * fHeight)); |
|
bsalomon
2015/04/24 15:07:41
lgtm, wrap this and delete commented out lines?
|
| + } |
| const unsigned char* imagePtr = (const unsigned char*)image; |
| // point ourselves at the right starting spot |
| unsigned char* dataPtr = fData; |
| @@ -88,9 +90,8 @@ public: |
| void uploadToTexture(GrBatchTarget::TextureUploader uploader) { |
| // We should only be issuing uploads if we are in fact dirty |
| - SkASSERT(fDirty); |
| + SkASSERT(fDirty && fData && fTexture); |
| TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("skia.gpu"), "GrBatchPlot::uploadToTexture"); |
| - SkASSERT(fTexture); |
| size_t rowBytes = fBytesPerPixel * fRects->width(); |
| const unsigned char* dataPtr = fData; |
| dataPtr += rowBytes * fDirtyRect.fTop; |
| @@ -110,8 +111,9 @@ public: |
| fID = create_id(fIndex, fGenID); |
| // zero out the plot |
| - SkASSERT(fData); |
| - memset(fData, 0, fBytesPerPixel * fWidth * fHeight); |
| + if (fData) { |
| + sk_bzero(fData, fBytesPerPixel * fWidth * fHeight); |
| + } |
| fDirtyRect.setEmpty(); |
| SkDEBUGCODE(fDirty = false;) |
| @@ -168,8 +170,8 @@ private: |
| fTexture = texture; |
| // allocate backing store |
| - fData = SkNEW_ARRAY(unsigned char, fBytesPerPixel * width * height); |
| - memset(fData, 0, fBytesPerPixel * width * height); |
| + //fData = SkNEW_ARRAY(unsigned char, fBytesPerPixel * width * height); |
| + //memset(fData, 0, fBytesPerPixel * width * height); |
| } |
| BatchToken fLastUpload; |