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; |