| Index: include/core/SkPathRef.h
|
| diff --git a/include/core/SkPathRef.h b/include/core/SkPathRef.h
|
| index e7cc31cff43ef6d2947c822626a0709a034c6077..c09f6e87e471c1d8320a11156ef9dc64d0dbb92a 100644
|
| --- a/include/core/SkPathRef.h
|
| +++ b/include/core/SkPathRef.h
|
| @@ -180,19 +180,7 @@ public:
|
| */
|
| static void Rewind(SkAutoTUnref<SkPathRef>* pathRef);
|
|
|
| - virtual ~SkPathRef() {
|
| - SkDEBUGCODE(this->validate();)
|
| - sk_free(fPoints);
|
| -
|
| - SkDEBUGCODE(fPoints = NULL;)
|
| - SkDEBUGCODE(fVerbs = NULL;)
|
| - SkDEBUGCODE(fVerbCnt = 0x9999999;)
|
| - SkDEBUGCODE(fPointCnt = 0xAAAAAAA;)
|
| - SkDEBUGCODE(fPointCnt = 0xBBBBBBB;)
|
| - SkDEBUGCODE(fGenerationID = 0xEEEEEEEE;)
|
| - SkDEBUGCODE(fEditorsAttached = 0x7777777;)
|
| - }
|
| -
|
| + virtual ~SkPathRef();
|
| int countPoints() const { SkDEBUGCODE(this->validate();) return fPointCnt; }
|
| int countVerbs() const { SkDEBUGCODE(this->validate();) return fVerbCnt; }
|
| int countWeights() const { SkDEBUGCODE(this->validate();) return fConicWeights.count(); }
|
| @@ -251,6 +239,13 @@ public:
|
| */
|
| uint32_t genID() const;
|
|
|
| + struct GenIDChangeListener {
|
| + virtual ~GenIDChangeListener() {}
|
| + virtual void onChange() = 0;
|
| + };
|
| +
|
| + void addGenIDChangeListener(GenIDChangeListener* listener);
|
| +
|
| SkDEBUGCODE(void validate() const;)
|
|
|
| private:
|
| @@ -422,6 +417,8 @@ private:
|
| return fPoints;
|
| }
|
|
|
| + void callGenIDChangeListeners();
|
| +
|
| enum {
|
| kMinSize = 256,
|
| };
|
| @@ -446,6 +443,8 @@ private:
|
| mutable uint32_t fGenerationID;
|
| SkDEBUGCODE(int32_t fEditorsAttached;) // assert that only one editor in use at any time.
|
|
|
| + SkTDArray<GenIDChangeListener*> fGenIDChangeListeners; // pointers are owned
|
| +
|
| friend class PathRefTest_Private;
|
| typedef SkRefCnt INHERITED;
|
| };
|
|
|