| Index: include/core/SkPath.h
 | 
| diff --git a/include/core/SkPath.h b/include/core/SkPath.h
 | 
| index 3ff0af15a21d37d9b12383f1ed9d4640f551d0b7..3c68ff7d845bc7511234653d96994d7114998ad2 100644
 | 
| --- a/include/core/SkPath.h
 | 
| +++ b/include/core/SkPath.h
 | 
| @@ -154,6 +154,17 @@ public:
 | 
|       */
 | 
|      bool isOval(SkRect* rect) const { return fPathRef->isOval(rect); }
 | 
|  
 | 
| +    /** Returns true if the path is a round rect.
 | 
| +     *
 | 
| +     * @param rrect  Returns the bounding rect and radii of this round rect.
 | 
| +     *
 | 
| +     * @return true if this path is a round rect.
 | 
| +     *              Tracking whether a path is a round rect is considered an
 | 
| +     *              optimization for performance and so some paths that are in
 | 
| +     *              fact round rects can report false.
 | 
| +     */
 | 
| +    bool isRRect(SkRRect* rrect) const { return fPathRef->isRRect(rrect); }
 | 
| +
 | 
|      /** Clear any lines and curves from the path, making it empty. This frees up
 | 
|          internal storage associated with those segments.
 | 
|          On Android, does not change fSourcePath.
 | 
| @@ -918,10 +929,14 @@ public:
 | 
|      */
 | 
|      class SK_API RawIter {
 | 
|      public:
 | 
| -        RawIter();
 | 
| -        RawIter(const SkPath&);
 | 
| +        RawIter() {}
 | 
| +        RawIter(const SkPath& path) {
 | 
| +            setPath(path);
 | 
| +        }
 | 
|  
 | 
| -        void setPath(const SkPath&);
 | 
| +        void setPath(const SkPath& path) {
 | 
| +            fRawIter.setPathRef(*path.fPathRef.get());
 | 
| +        }
 | 
|  
 | 
|          /** Return the next verb in this iteration of the path. When all
 | 
|              segments have been visited, return kDone_Verb.
 | 
| @@ -930,15 +945,17 @@ public:
 | 
|                          This must not be NULL.
 | 
|              @return The verb for the current segment
 | 
|          */
 | 
| -        Verb next(SkPoint pts[4]);
 | 
| +        Verb next(SkPoint pts[4]) {
 | 
| +            return (Verb) fRawIter.next(pts);
 | 
| +        }
 | 
|  
 | 
| -        SkScalar conicWeight() const { return *fConicWeights; }
 | 
| +        SkScalar conicWeight() const {
 | 
| +            return fRawIter.conicWeight();
 | 
| +        }
 | 
|  
 | 
|      private:
 | 
| -        const SkPoint*  fPts;
 | 
| -        const uint8_t*  fVerbs;
 | 
| -        const uint8_t*  fVerbStop;
 | 
| -        const SkScalar* fConicWeights;
 | 
| +        SkPathRef::Iter fRawIter;
 | 
| +        friend class SkPath;
 | 
|      };
 | 
|  
 | 
|      /**
 | 
| @@ -1066,6 +1083,7 @@ private:
 | 
|      friend class SkAutoDisableDirectionCheck;
 | 
|      friend class SkBench_AddPathTest; // perf test reversePathTo
 | 
|      friend class PathTest_Private; // unit test reversePathTo
 | 
| +    friend class ForceIsRRect_Private; // unit test isRRect
 | 
|  };
 | 
|  
 | 
|  #endif
 | 
| 
 |