diff options
author | reed <reed@google.com> | 2015-06-17 09:58:24 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-06-17 09:58:25 -0700 |
commit | 6b7f34e34cc0ce397ce5e4ddc0c244f372b4f840 (patch) | |
tree | 8a346c19453a4a2a073153bd13723907535da8fe /src/core/SkData.cpp | |
parent | 12555d7efbd1e2238e7e7a7eee6b651f304ba451 (diff) |
simplify release-proc for SkData, removing unneeded size param
request https://codereview.chromium.org/1184953005 to land first
BUG=skia:
Review URL: https://codereview.chromium.org/1193553002
Diffstat (limited to 'src/core/SkData.cpp')
-rw-r--r-- | src/core/SkData.cpp | 38 |
1 files changed, 30 insertions, 8 deletions
diff --git a/src/core/SkData.cpp b/src/core/SkData.cpp index ad79ce0535..09d7a5de98 100644 --- a/src/core/SkData.cpp +++ b/src/core/SkData.cpp @@ -12,11 +12,19 @@ #include "SkStream.h" #include "SkWriteBuffer.h" +#ifdef SK_SUPPORT_LEGACY_DATARELEASEPROC_PARAMS +SkData::SkData(const void* ptr, size_t size, ReleaseProc proc, void* context, + LegacyReleaseProc legacyProc) { +#else SkData::SkData(const void* ptr, size_t size, ReleaseProc proc, void* context) { +#endif fPtr = const_cast<void*>(ptr); fSize = size; fReleaseProc = proc; fReleaseProcContext = context; +#ifdef SK_SUPPORT_LEGACY_DATARELEASEPROC_PARAMS + fLegacyReleaseProc = legacyProc; +#endif } // This constructor means we are inline with our fPtr's contents. Thus we set fPtr @@ -28,12 +36,20 @@ SkData::SkData(size_t size) { fSize = size; fReleaseProc = NULL; fReleaseProcContext = NULL; +#ifdef SK_SUPPORT_LEGACY_DATARELEASEPROC_PARAMS + fLegacyReleaseProc = NULL; +#endif } SkData::~SkData() { if (fReleaseProc) { - fReleaseProc(fPtr, fSize, fReleaseProcContext); + fReleaseProc(fPtr, fReleaseProcContext); } +#ifdef SK_SUPPORT_LEGACY_DATARELEASEPROC_PARAMS + if (fLegacyReleaseProc) { + fLegacyReleaseProc(fPtr, fSize, fReleaseProcContext); + } +#endif } bool SkData::equals(const SkData* other) const { @@ -91,7 +107,7 @@ SkData* SkData::NewEmpty() { } // assumes fPtr was allocated via sk_malloc -static void sk_free_releaseproc(const void* ptr, size_t, void*) { +static void sk_free_releaseproc(const void* ptr, void*) { sk_free((void*)ptr); } @@ -108,13 +124,19 @@ SkData* SkData::NewUninitialized(size_t length) { return PrivateNewWithCopy(NULL, length); } -SkData* SkData::NewWithProc(const void* data, size_t length, - ReleaseProc proc, void* context) { - return new SkData(data, length, proc, context); +SkData* SkData::NewWithProc(const void* ptr, size_t length, ReleaseProc proc, void* context) { + return new SkData(ptr, length, proc, context); +} + +#ifdef SK_SUPPORT_LEGACY_DATARELEASEPROC_PARAMS +SkData* SkData::NewWithProc(const void* ptr, size_t length, LegacyReleaseProc proc, void* ctx) { + return new SkData(ptr, length, NULL, ctx, proc); } +#endif // assumes fPtr was allocated with sk_fmmap -static void sk_mmap_releaseproc(const void* addr, size_t length, void*) { +static void sk_mmap_releaseproc(const void* addr, void* ctx) { + size_t length = reinterpret_cast<size_t>(ctx); sk_fmunmap(addr, length); } @@ -125,7 +147,7 @@ SkData* SkData::NewFromFILE(SkFILE* f) { return NULL; } - return SkData::NewWithProc(addr, size, sk_mmap_releaseproc, NULL); + return SkData::NewWithProc(addr, size, sk_mmap_releaseproc, reinterpret_cast<void*>(size)); } SkData* SkData::NewFromFileName(const char path[]) { @@ -149,7 +171,7 @@ SkData* SkData::NewFromFD(int fd) { } // assumes context is a SkData -static void sk_dataref_releaseproc(const void*, size_t, void* context) { +static void sk_dataref_releaseproc(const void*, void* context) { SkData* src = reinterpret_cast<SkData*>(context); src->unref(); } |