| Index: src/pipe/SkGPipeWrite.cpp
|
| diff --git a/src/pipe/SkGPipeWrite.cpp b/src/pipe/SkGPipeWrite.cpp
|
| index 57d4a0fdc345ee57263420a44fb08ae19e7d6783..0b8819a80d45d8db5016563eb6914229cfda6ee4 100644
|
| --- a/src/pipe/SkGPipeWrite.cpp
|
| +++ b/src/pipe/SkGPipeWrite.cpp
|
| @@ -1128,18 +1128,17 @@ void SkGPipeCanvas::writePaint(const SkPaint& paint) {
|
|
|
| if (base.getAnnotation() != paint.getAnnotation()) {
|
| if (NULL == paint.getAnnotation()) {
|
| - this->writeOp(kSetAnnotation_DrawOp, 0, 0);
|
| + if (this->needOpBytes()) {
|
| + this->writeOp(kSetAnnotation_DrawOp, 0, 0);
|
| + }
|
| } else {
|
| SkOrderedWriteBuffer buffer(1024);
|
| paint.getAnnotation()->writeToBuffer(buffer);
|
| - size = buffer.bytesWritten();
|
| -
|
| - SkAutoMalloc storage(size);
|
| - buffer.writeToMemory(storage.get());
|
| -
|
| - this->writeOp(kSetAnnotation_DrawOp, 0, 1);
|
| - fWriter.write32(size);
|
| - fWriter.write(storage.get(), size);
|
| + const size_t size = buffer.bytesWritten();
|
| + if (this->needOpBytes(size)) {
|
| + this->writeOp(kSetAnnotation_DrawOp, 0, size);
|
| + buffer.writeToMemory(fWriter.reserve(size));
|
| + }
|
| }
|
| }
|
| }
|
|
|