| Index: src/core/SkBlitter_A8.cpp
 | 
| diff --git a/src/core/SkBlitter_A8.cpp b/src/core/SkBlitter_A8.cpp
 | 
| index 11f425903b99218e7522f50c26a0a281644b0542..983a226e3460a755bee4f80a287f3eb1b788eb41 100644
 | 
| --- a/src/core/SkBlitter_A8.cpp
 | 
| +++ b/src/core/SkBlitter_A8.cpp
 | 
| @@ -228,12 +228,11 @@
 | 
|  
 | 
|  ///////////////////////////////////////////////////////////////////////
 | 
|  
 | 
| -SkA8_Shader_Blitter::SkA8_Shader_Blitter(const SkBitmap& device, const SkPaint& paint,
 | 
| -                                         SkShader::Context* shaderContext)
 | 
| -    : INHERITED(device, paint, shaderContext) {
 | 
| +SkA8_Shader_Blitter::SkA8_Shader_Blitter(const SkBitmap& device, const SkPaint& paint)
 | 
| +    : INHERITED(device, paint) {
 | 
|      if ((fXfermode = paint.getXfermode()) != NULL) {
 | 
|          fXfermode->ref();
 | 
| -        SkASSERT(fShaderContext);
 | 
| +        SkASSERT(fShader);
 | 
|      }
 | 
|  
 | 
|      int width = device.width();
 | 
| @@ -251,14 +250,13 @@
 | 
|               (unsigned)(x + width) <= (unsigned)fDevice.width());
 | 
|  
 | 
|      uint8_t* device = fDevice.getAddr8(x, y);
 | 
| -    SkShader::Context* shaderContext = fShaderContext;
 | 
| -
 | 
| -    if ((shaderContext->getFlags() & SkShader::kOpaqueAlpha_Flag) && !fXfermode) {
 | 
| +
 | 
| +    if ((fShader->getFlags() & SkShader::kOpaqueAlpha_Flag) && !fXfermode) {
 | 
|          memset(device, 0xFF, width);
 | 
|      } else {
 | 
|          SkPMColor*  span = fBuffer;
 | 
|  
 | 
| -        shaderContext->shadeSpan(x, y, span, width);
 | 
| +        fShader->shadeSpan(x, y, span, width);
 | 
|          if (fXfermode) {
 | 
|              fXfermode->xferA8(device, span, width, NULL);
 | 
|          } else {
 | 
| @@ -284,12 +282,12 @@
 | 
|  
 | 
|  void SkA8_Shader_Blitter::blitAntiH(int x, int y, const SkAlpha antialias[],
 | 
|                                      const int16_t runs[]) {
 | 
| -    SkShader::Context* shaderContext = fShaderContext;
 | 
| -    SkXfermode*        mode = fXfermode;
 | 
| -    uint8_t*           aaExpand = fAAExpand;
 | 
| -    SkPMColor*         span = fBuffer;
 | 
| -    uint8_t*           device = fDevice.getAddr8(x, y);
 | 
| -    int                opaque = shaderContext->getFlags() & SkShader::kOpaqueAlpha_Flag;
 | 
| +    SkShader*   shader = fShader;
 | 
| +    SkXfermode* mode = fXfermode;
 | 
| +    uint8_t*    aaExpand = fAAExpand;
 | 
| +    SkPMColor*  span = fBuffer;
 | 
| +    uint8_t*    device = fDevice.getAddr8(x, y);
 | 
| +    int         opaque = fShader->getFlags() & SkShader::kOpaqueAlpha_Flag;
 | 
|  
 | 
|      for (;;) {
 | 
|          int count = *runs;
 | 
| @@ -301,7 +299,7 @@
 | 
|              if (opaque && aa == 255 && mode == NULL) {
 | 
|                  memset(device, 0xFF, count);
 | 
|              } else {
 | 
| -                shaderContext->shadeSpan(x, y, span, count);
 | 
| +                shader->shadeSpan(x, y, span, count);
 | 
|                  if (mode) {
 | 
|                      memset(aaExpand, aa, count);
 | 
|                      mode->xferA8(device, span, count, aaExpand);
 | 
| @@ -331,12 +329,11 @@
 | 
|      int height = clip.height();
 | 
|      uint8_t* device = fDevice.getAddr8(x, y);
 | 
|      const uint8_t* alpha = mask.getAddr8(x, y);
 | 
| -    SkShader::Context* shaderContext = fShaderContext;
 | 
|  
 | 
|      SkPMColor*  span = fBuffer;
 | 
|  
 | 
|      while (--height >= 0) {
 | 
| -        shaderContext->shadeSpan(x, y, span, width);
 | 
| +        fShader->shadeSpan(x, y, span, width);
 | 
|          if (fXfermode) {
 | 
|              fXfermode->xferA8(device, span, width, alpha);
 | 
|          } else {
 | 
| 
 |