Chromium Code Reviews| Index: include/core/SkWriter32.h |
| diff --git a/include/core/SkWriter32.h b/include/core/SkWriter32.h |
| index 2e7c9563d9f748017a6b4e04adc1ccff1cbab63b..b8c555d6ca82c1872a715f8f1814bcd0581439db 100644 |
| --- a/include/core/SkWriter32.h |
| +++ b/include/core/SkWriter32.h |
| @@ -10,6 +10,7 @@ |
| #ifndef SkWriter32_DEFINED |
| #define SkWriter32_DEFINED |
| +#include "SkData.h" |
| #include "SkMatrix.h" |
| #include "SkPath.h" |
| #include "SkPoint.h" |
| @@ -44,6 +45,7 @@ public: |
| SkASSERT(SkIsAlign4((uintptr_t)external)); |
| SkASSERT(SkIsAlign4(externalBytes)); |
| + fSnapshot.reset(NULL); |
| fData = (uint8_t*)external; |
| fCapacity = externalBytes; |
| fUsed = 0; |
| @@ -230,6 +232,15 @@ public: |
| return stream->read(this->reservePad(length), length); |
| } |
| + /** |
| + * Captures a snapshot of the data as it is right now, and return it. |
| + * Multiple calls without intervening writes may return the same SkData, |
| + * but this is not guaranteed. |
| + * Future appends will not affect the returned buffer, but future writes |
| + * without an intervening append may. |
|
reed1
2014/03/06 19:20:31
"may" -- does this mean future writes *will* appea
iancottrell
2014/03/06 21:31:52
Undefined but predictable.
For instance, if the cu
|
| + * Callers must unref the returned SkData. |
| + */ |
| + SkData* snapshotAsData() const; |
| private: |
| void growToAtLeast(size_t size); |
| @@ -238,6 +249,7 @@ private: |
| size_t fUsed; // Number of bytes written. |
| void* fExternal; // Unmanaged memory block. |
| SkAutoTMalloc<uint8_t> fInternal; // Managed memory block. |
| + SkAutoTUnref<SkData> fSnapshot; // Holds the result of last asData. |
| }; |
| /** |