override drawOval and drawRRect in GatherPixelRefDevice, so we don't miss those,
and possibly crash trying to raster into an empty device.

http://code.google.com/p/skia/issues/detail?id=1086
Review URL: https://codereview.appspot.com/7193057

git-svn-id: http://skia.googlecode.com/svn/trunk@7372 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/src/utils/SkPictureUtils.cpp b/src/utils/SkPictureUtils.cpp
index 46ca6d6..0b147fa 100644
--- a/src/utils/SkPictureUtils.cpp
+++ b/src/utils/SkPictureUtils.cpp
@@ -84,7 +84,15 @@
                             const SkPoint[], const SkPaint& paint) SK_OVERRIDE {
         this->addBitmapFromPaint(paint);
     }
-    virtual void drawRect(const SkDraw&, const SkRect& r,
+    virtual void drawRect(const SkDraw&, const SkRect&,
+                          const SkPaint& paint) SK_OVERRIDE {
+        this->addBitmapFromPaint(paint);
+    }
+    virtual void drawOval(const SkDraw&, const SkRect&,
+                          const SkPaint& paint) SK_OVERRIDE {
+        this->addBitmapFromPaint(paint);
+    }
+    virtual void drawRRect(const SkDraw&, const SkRRect&,
                           const SkPaint& paint) SK_OVERRIDE {
         this->addBitmapFromPaint(paint);
     }
diff --git a/tests/PictureTest.cpp b/tests/PictureTest.cpp
index da8d13a..395ce4a 100644
--- a/tests/PictureTest.cpp
+++ b/tests/PictureTest.cpp
@@ -11,6 +11,7 @@
 #include "SkPaint.h"
 #include "SkPicture.h"
 #include "SkRandom.h"
+#include "SkRRect.h"
 #include "SkShader.h"
 #include "SkStream.h"
 
@@ -54,6 +55,10 @@
     SkPaint paint;
     paint.setShader(s)->unref();
     canvas->drawRect(r, paint);
+    canvas->drawOval(r, paint);
+    SkRRect rr;
+    rr.setRectXY(r, 10, 10);
+    canvas->drawRRect(rr, paint);
 }
 
 // Return a picture with the bitmaps drawn at the specified positions.