| Index: src/core/SkReadBuffer.cpp
|
| diff --git a/src/core/SkReadBuffer.cpp b/src/core/SkReadBuffer.cpp
|
| index b4bc87529ab5a5b1e1e620d2775f7e7a5f1dedf1..28a88763fc9f89a781dd066fc07c2b32d93f494f 100644
|
| --- a/src/core/SkReadBuffer.cpp
|
| +++ b/src/core/SkReadBuffer.cpp
|
| @@ -335,3 +335,25 @@ SkFlattenable* SkReadBuffer::readFlattenable(SkFlattenable::Type ft) {
|
| }
|
| return obj;
|
| }
|
| +
|
| +/**
|
| + * Needs to follow the same pattern as readFlattenable(), but explicitly skip whatever data
|
| + * has been written.
|
| + */
|
| +void SkReadBuffer::skipFlattenable() {
|
| + if (fFactoryCount > 0) {
|
| + if (0 == fReader.readU32()) {
|
| + return;
|
| + }
|
| + } else if (fFactoryTDArray) {
|
| + if (0 == fReader.readU32()) {
|
| + return;
|
| + }
|
| + } else {
|
| + if (NULL == this->readFunctionPtr()) {
|
| + return;
|
| + }
|
| + }
|
| + uint32_t sizeRecorded = fReader.readU32();
|
| + fReader.skip(sizeRecorded);
|
| +}
|
|
|