| Index: src/core/SkComposeShader.cpp
 | 
| diff --git a/src/core/SkComposeShader.cpp b/src/core/SkComposeShader.cpp
 | 
| index f7de73b205d45d652c2a2c9cfc0f560f2ba7f38b..3c5b55aae663e948e0c740d4dbcde3b9948d790a 100644
 | 
| --- a/src/core/SkComposeShader.cpp
 | 
| +++ b/src/core/SkComposeShader.cpp
 | 
| @@ -26,8 +26,8 @@ SkComposeShader::SkComposeShader(SkShader* sA, SkShader* sB, SkXfermode* mode) {
 | 
|      SkSafeRef(mode);
 | 
|  }
 | 
|  
 | 
| -SkComposeShader::SkComposeShader(SkReadBuffer& buffer) :
 | 
| -    INHERITED(buffer) {
 | 
| +#ifdef SK_SUPPORT_LEGACY_DEEPFLATTENING
 | 
| +SkComposeShader::SkComposeShader(SkReadBuffer& buffer) : INHERITED(buffer) {
 | 
|      fShaderA = buffer.readShader();
 | 
|      if (NULL == fShaderA) {
 | 
|          fShaderA = SkNEW_ARGS(SkColorShader, ((SkColor)0));
 | 
| @@ -38,6 +38,7 @@ SkComposeShader::SkComposeShader(SkReadBuffer& buffer) :
 | 
|      }
 | 
|      fMode = buffer.readXfermode();
 | 
|  }
 | 
| +#endif
 | 
|  
 | 
|  SkComposeShader::~SkComposeShader() {
 | 
|      SkSafeUnref(fMode);
 | 
| @@ -66,8 +67,17 @@ private:
 | 
|  };
 | 
|  #define SkAutoAlphaRestore(...) SK_REQUIRE_LOCAL_VAR(SkAutoAlphaRestore)
 | 
|  
 | 
| +SkFlattenable* SkComposeShader::CreateProc(SkReadBuffer& buffer) {
 | 
| +    SkAutoTUnref<SkShader> shaderA(buffer.readShader());
 | 
| +    SkAutoTUnref<SkShader> shaderB(buffer.readShader());
 | 
| +    SkAutoTUnref<SkXfermode> mode(buffer.readXfermode());
 | 
| +    if (!shaderA.get() || !shaderB.get()) {
 | 
| +        return NULL;
 | 
| +    }
 | 
| +    return SkNEW_ARGS(SkComposeShader, (shaderA, shaderB, mode));
 | 
| +}
 | 
| +
 | 
|  void SkComposeShader::flatten(SkWriteBuffer& buffer) const {
 | 
| -    this->INHERITED::flatten(buffer);
 | 
|      buffer.writeFlattenable(fShaderA);
 | 
|      buffer.writeFlattenable(fShaderB);
 | 
|      buffer.writeFlattenable(fMode);
 | 
| 
 |