| Index: src/utils/SkDeferredCanvas.cpp
 | 
| diff --git a/src/utils/SkDeferredCanvas.cpp b/src/utils/SkDeferredCanvas.cpp
 | 
| index 7e4539a5a77ec24102325484bc13e24a83dbb559..d5cf97bd04df38287faa639f08bd9f7aa4a7c245 100644
 | 
| --- a/src/utils/SkDeferredCanvas.cpp
 | 
| +++ b/src/utils/SkDeferredCanvas.cpp
 | 
| @@ -32,17 +32,10 @@
 | 
|      kSilent_PlaybackMode,
 | 
|  };
 | 
|  
 | 
| -static uint64_t image_area(const SkImage* image) {
 | 
| -    return sk_64_mul(image->width(), image->height());
 | 
| -}
 | 
| -
 | 
| -static bool should_draw_immediately(const SkBitmap* bitmap, const SkImage* image,
 | 
| -                                    const SkPaint* paint, size_t bitmapSizeThreshold) {
 | 
| +static bool should_draw_immediately(const SkBitmap* bitmap, const SkPaint* paint,
 | 
| +                                    size_t bitmapSizeThreshold) {
 | 
|      if (bitmap && ((bitmap->getTexture() && !bitmap->isImmutable()) ||
 | 
| -                   (bitmap->getSize() > bitmapSizeThreshold))) {
 | 
| -        return true;
 | 
| -    }
 | 
| -    if (image && (image_area(image) > bitmapSizeThreshold)) {
 | 
| +        (bitmap->getSize() > bitmapSizeThreshold))) {
 | 
|          return true;
 | 
|      }
 | 
|      if (paint) {
 | 
| @@ -209,11 +202,6 @@
 | 
|      void drawSprite(const SkDraw&, const SkBitmap& bitmap,
 | 
|                      int x, int y, const SkPaint& paint) override
 | 
|          {SkASSERT(0);}
 | 
| -    void drawImage(const SkDraw&, const SkImage*, SkScalar, SkScalar, const SkPaint&) override
 | 
| -        {SkASSERT(0);}
 | 
| -    void drawImageRect(const SkDraw&, const SkImage*, const SkRect*, const SkRect&,
 | 
| -                       const SkPaint&) override
 | 
| -        {SkASSERT(0);}
 | 
|      void drawText(const SkDraw&, const void* text, size_t len,
 | 
|                    SkScalar x, SkScalar y, const SkPaint& paint) override
 | 
|          {SkASSERT(0);}
 | 
| @@ -493,15 +481,11 @@
 | 
|  public:
 | 
|      AutoImmediateDrawIfNeeded(SkDeferredCanvas& canvas, const SkBitmap* bitmap,
 | 
|                                const SkPaint* paint) {
 | 
| -        this->init(canvas, bitmap, NULL, paint);
 | 
| -    }
 | 
| -    AutoImmediateDrawIfNeeded(SkDeferredCanvas& canvas, const SkImage* image,
 | 
| -                              const SkPaint* paint) {
 | 
| -        this->init(canvas, NULL, image, paint);
 | 
| +        this->init(canvas, bitmap, paint);
 | 
|      }
 | 
|  
 | 
|      AutoImmediateDrawIfNeeded(SkDeferredCanvas& canvas, const SkPaint* paint) {
 | 
| -        this->init(canvas, NULL, NULL, paint);
 | 
| +        this->init(canvas, NULL, paint);
 | 
|      }
 | 
|  
 | 
|      ~AutoImmediateDrawIfNeeded() {
 | 
| @@ -510,10 +494,9 @@
 | 
|          }
 | 
|      }
 | 
|  private:
 | 
| -    void init(SkDeferredCanvas& canvas, const SkBitmap* bitmap, const SkImage* image,
 | 
| -              const SkPaint* paint) {
 | 
| +    void init(SkDeferredCanvas& canvas, const SkBitmap* bitmap, const SkPaint* paint) {
 | 
|          if (canvas.isDeferredDrawing() &&
 | 
| -            should_draw_immediately(bitmap, image, paint, canvas.getBitmapSizeThreshold())) {
 | 
| +            should_draw_immediately(bitmap, paint, canvas.getBitmapSizeThreshold())) {
 | 
|              canvas.setDeferredDrawing(false);
 | 
|              fCanvas = &canvas;
 | 
|          } else {
 | 
| @@ -850,34 +833,6 @@
 | 
|  
 | 
|      AutoImmediateDrawIfNeeded autoDraw(*this, &bitmap, paint);
 | 
|      this->drawingCanvas()->drawBitmapRectToRect(bitmap, src, dst, paint, flags);
 | 
| -    this->recordedDrawCommand();
 | 
| -}
 | 
| -
 | 
| -
 | 
| -void SkDeferredCanvas::onDrawImage(const SkImage* image, SkScalar x, SkScalar y,
 | 
| -                                   const SkPaint* paint) {
 | 
| -    SkRect bounds = SkRect::MakeXYWH(x, y,
 | 
| -                                     SkIntToScalar(image->width()), SkIntToScalar(image->height()));
 | 
| -    if (fDeferredDrawing &&
 | 
| -        this->isFullFrame(&bounds, paint) &&
 | 
| -        isPaintOpaque(paint, image)) {
 | 
| -        this->getDeferredDevice()->skipPendingCommands();
 | 
| -    }
 | 
| -    
 | 
| -    AutoImmediateDrawIfNeeded autoDraw(*this, image, paint);
 | 
| -    this->drawingCanvas()->drawImage(image, x, y, paint);
 | 
| -    this->recordedDrawCommand();
 | 
| -}
 | 
| -void SkDeferredCanvas::onDrawImageRect(const SkImage* image, const SkRect* src, const SkRect& dst,
 | 
| -                                       const SkPaint* paint) {
 | 
| -    if (fDeferredDrawing &&
 | 
| -        this->isFullFrame(&dst, paint) &&
 | 
| -        isPaintOpaque(paint, image)) {
 | 
| -        this->getDeferredDevice()->skipPendingCommands();
 | 
| -    }
 | 
| -    
 | 
| -    AutoImmediateDrawIfNeeded autoDraw(*this, image, paint);
 | 
| -    this->drawingCanvas()->drawImageRect(image, src, dst, paint);
 | 
|      this->recordedDrawCommand();
 | 
|  }
 | 
|  
 | 
| 
 |