| Index: src/core/SkReadBuffer.cpp
|
| diff --git a/src/core/SkReadBuffer.cpp b/src/core/SkReadBuffer.cpp
|
| index d016d9c980b5ecbc77fc938a059c0cea11add3dc..c32c7bd658672b3531900f3484363251223f91e1 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);
|
| +}
|
|
|