| Index: src/core/SkRecorder.cpp
 | 
| diff --git a/src/core/SkRecorder.cpp b/src/core/SkRecorder.cpp
 | 
| index 0413860e9dc1ff26f9ca8b424bec1fb22625fa7b..41164bd8a26d30982e21f449efc6bbf7c492f883 100644
 | 
| --- a/src/core/SkRecorder.cpp
 | 
| +++ b/src/core/SkRecorder.cpp
 | 
| @@ -186,7 +186,9 @@ void SkRecorder::onDrawBitmapRect(const SkBitmap& bitmap,
 | 
|                                    const SkRect* src,
 | 
|                                    const SkRect& dst,
 | 
|                                    const SkPaint* paint,
 | 
| -                                  DrawBitmapRectFlags flags) {
 | 
| +                                  SK_VIRTUAL_CONSTRAINT_TYPE legacyConstraint) {
 | 
| +    SrcRectConstraint constraint = (SrcRectConstraint)legacyConstraint;
 | 
| +
 | 
|  #ifdef WRAP_BITMAP_AS_IMAGE
 | 
|      // TODO: need a way to support the flags for images...
 | 
|      SkAutoTUnref<SkImage> image(SkImage::NewFromBitmap(bitmap));
 | 
| @@ -194,15 +196,13 @@ void SkRecorder::onDrawBitmapRect(const SkBitmap& bitmap,
 | 
|          this->onDrawImageRect(image, src, dst, paint);
 | 
|      }
 | 
|  #else
 | 
| -    TRY_MINIRECORDER(drawBitmapRectToRect, bitmap, src, dst, paint, flags);
 | 
| -    if (kBleed_DrawBitmapRectFlag == flags) {
 | 
| -        APPEND(DrawBitmapRectToRectBleed,
 | 
| -               this->copy(paint), bitmap, this->copy(src), dst);
 | 
| +    TRY_MINIRECORDER(drawBitmapRect, bitmap, src, dst, paint, constraint);
 | 
| +    if (kFast_SrcRectConstraint == constraint) {
 | 
| +        APPEND(DrawBitmapRectFast, this->copy(paint), bitmap, this->copy(src), dst);
 | 
|          return;
 | 
|      }
 | 
| -    SkASSERT(kNone_DrawBitmapRectFlag == flags);
 | 
| -    APPEND(DrawBitmapRectToRect,
 | 
| -           this->copy(paint), bitmap, this->copy(src), dst);
 | 
| +    SkASSERT(kStrict_SrcRectConstraint == constraint);
 | 
| +    APPEND(DrawBitmapRect, this->copy(paint), bitmap, this->copy(src), dst);
 | 
|  #endif
 | 
|  }
 | 
|  
 | 
| @@ -227,8 +227,11 @@ void SkRecorder::onDrawImage(const SkImage* image, SkScalar left, SkScalar top,
 | 
|  
 | 
|  void SkRecorder::onDrawImageRect(const SkImage* image, const SkRect* src,
 | 
|                                   const SkRect& dst,
 | 
| -                                 const SkPaint* paint) {
 | 
| -    APPEND(DrawImageRect, this->copy(paint), image, this->copy(src), dst);
 | 
| +                                 const SkPaint* paint SRC_RECT_CONSTRAINT_PARAM(constraint)) {
 | 
| +#ifdef SK_SUPPORT_LEGACY_ONDRAWIMAGERECT
 | 
| +    SrcRectConstraint constraint = kStrict_SrcRectConstraint;
 | 
| +#endif
 | 
| +    APPEND(DrawImageRect, this->copy(paint), image, this->copy(src), dst, constraint);
 | 
|  }
 | 
|  
 | 
|  void SkRecorder::onDrawImageNine(const SkImage* image, const SkIRect& center,
 | 
| 
 |