add detach() method
authorreed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81>
Tue, 25 Aug 2009 16:03:59 +0000 (16:03 +0000)
committerreed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81>
Tue, 25 Aug 2009 16:03:59 +0000 (16:03 +0000)
git-svn-id: http://skia.googlecode.com/svn/trunk@334 2bbb7eff-a529-9590-31e7-b0007b416f81

include/core/SkTDArray.h

index 5f6bbd861210b729072f98ee36ae60da400af7dd..954bcf899d70b6223597ca60b10c808a7054aac3 100644 (file)
@@ -86,6 +86,17 @@ public:
         SkTSwap(fCount, other.fCount);
     }
 
+    /** Return a ptr to the array of data, to be freed with sk_free. This also
+        resets the SkTDArray to be empty.
+     */
+    T* detach() {
+        T* array = fArray;
+        fArray = NULL;
+        fReserve = fCount = 0;
+        SkDEBUGCODE(fData = NULL;)
+        return array;
+    }
+
     bool isEmpty() const { return fCount == 0; }
     int count() const { return fCount; }
     T*  begin() const { return fArray; }