| Index: src/core/SkWriter32.cpp
|
| diff --git a/src/core/SkWriter32.cpp b/src/core/SkWriter32.cpp
|
| index 56edd19698031ace0308c7a09bf1ad93585c600e..e41e2df0c470423c34d017bc51e324165d9ed19a 100644
|
| --- a/src/core/SkWriter32.cpp
|
| +++ b/src/core/SkWriter32.cpp
|
| @@ -246,6 +246,12 @@ void SkWriter32::validate() const {
|
|
|
| const char* SkReader32::readString(size_t* outLen) {
|
| size_t len = this->readInt();
|
| + if (0xFFFF == len) {
|
| + if (outLen) {
|
| + *outLen = 0;
|
| + }
|
| + return NULL;
|
| + }
|
| const void* ptr = this->peek();
|
|
|
| // skip over teh string + '\0' and then pad to a multiple of 4
|
| @@ -268,8 +274,12 @@ size_t SkReader32::readIntoString(SkString* copy) {
|
| }
|
|
|
| void SkWriter32::writeString(const char str[], size_t len) {
|
| + if (NULL == str) {
|
| + // We're already requiring len < 0xFFFF, so we can use that to mark NULL.
|
| + this->write32(0xFFFF);
|
| + return;
|
| + }
|
| if ((long)len < 0) {
|
| - SkASSERT(str);
|
| len = strlen(str);
|
| }
|
| this->write32(len);
|
|
|