| Index: src/pipe/SkGPipeRead.cpp
|
| diff --git a/src/pipe/SkGPipeRead.cpp b/src/pipe/SkGPipeRead.cpp
|
| index 789c3eded82899e23a654c3b81dcd5043d375683..877d380d61444f667ddfe8331cd5960608fe13f7 100644
|
| --- a/src/pipe/SkGPipeRead.cpp
|
| +++ b/src/pipe/SkGPipeRead.cpp
|
| @@ -691,13 +691,11 @@ static void annotation_rp(SkCanvas*, SkReader32* reader, uint32_t op32,
|
| SkGPipeState* state) {
|
| SkPaint* p = state->editPaint();
|
|
|
| - if (SkToBool(PaintOp_unpackData(op32))) {
|
| - const size_t size = reader->readU32();
|
| - SkAutoMalloc storage(size);
|
| -
|
| - reader->read(storage.get(), size);
|
| - SkOrderedReadBuffer buffer(storage.get(), size);
|
| + const size_t size = DrawOp_unpackData(op32);
|
| + if (size > 0) {
|
| + SkOrderedReadBuffer buffer(reader->skip(size), size);
|
| p->setAnnotation(SkNEW_ARGS(SkAnnotation, (buffer)))->unref();
|
| + SkASSERT(buffer.offset() == size);
|
| } else {
|
| p->setAnnotation(NULL);
|
| }
|
|
|