| Index: include/core/SkData.h
|
| diff --git a/include/core/SkData.h b/include/core/SkData.h
|
| index 0e4a474e124f443356716314f97871729c1b54ee..8a37cdee0741edf74751484fff99fde8c92bb40c 100644
|
| --- a/include/core/SkData.h
|
| +++ b/include/core/SkData.h
|
| @@ -71,9 +71,9 @@ public:
|
|
|
| /**
|
| * Function that, if provided, will be called when the SkData goes out
|
| - * of scope, allowing for custom allocation/freeing of the data.
|
| + * of scope, allowing for custom allocation/freeing of the data's contents.
|
| */
|
| - typedef void (*ReleaseProc)(const void* ptr, size_t length, void* context);
|
| + typedef void (*ReleaseProc)(const void* ptr, void* context);
|
|
|
| /**
|
| * Create a new dataref by copying the specified data
|
| @@ -95,17 +95,24 @@ public:
|
| static SkData* NewWithCString(const char cstr[]);
|
|
|
| /**
|
| - * Create a new dataref, taking the data ptr as is, and using the
|
| + * Create a new dataref, taking the ptr as is, and using the
|
| * releaseproc to free it. The proc may be NULL.
|
| */
|
| - static SkData* NewWithProc(const void* data, size_t length, ReleaseProc proc, void* context);
|
| + static SkData* NewWithProc(const void* ptr, size_t length, ReleaseProc proc, void* context);
|
| +
|
| +#ifdef SK_SUPPORT_LEGACY_DATARELEASEPROC_PARAMS
|
| + // This variant is temporary.
|
| + // Its signature is meant to match an older version of the API
|
| + typedef void (*LegacyReleaseProc)(const void* ptr, size_t size, void* ctx);
|
| + static SkData* NewWithProc(const void* ptr, size_t length, LegacyReleaseProc proc, void* ctx);
|
| +#endif
|
|
|
| /**
|
| * Call this when the data parameter is already const and will outlive the lifetime of the
|
| * SkData. Suitable for with const globals.
|
| */
|
| static SkData* NewWithoutCopy(const void* data, size_t length) {
|
| - return NewWithProc(data, length, NULL, NULL);
|
| + return NewWithProc(data, length, DummyReleaseProc, NULL);
|
| }
|
|
|
| /**
|
| @@ -160,11 +167,18 @@ public:
|
| private:
|
| ReleaseProc fReleaseProc;
|
| void* fReleaseProcContext;
|
| +#ifdef SK_SUPPORT_LEGACY_DATARELEASEPROC_PARAMS
|
| + LegacyReleaseProc fLegacyReleaseProc;
|
| +#endif
|
|
|
| void* fPtr;
|
| size_t fSize;
|
|
|
| +#ifdef SK_SUPPORT_LEGACY_DATARELEASEPROC_PARAMS
|
| + SkData(const void* ptr, size_t size, ReleaseProc, void* context, LegacyReleaseProc = NULL);
|
| +#else
|
| SkData(const void* ptr, size_t size, ReleaseProc, void* context);
|
| +#endif
|
| SkData(size_t size); // inplace new/delete
|
| virtual ~SkData();
|
|
|
| @@ -183,6 +197,8 @@ private:
|
| // shared internal factory
|
| static SkData* PrivateNewWithCopy(const void* srcOrNull, size_t length);
|
|
|
| + static void DummyReleaseProc(const void*, void*) {}
|
| +
|
| typedef SkRefCnt INHERITED;
|
| };
|
|
|
|
|