aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/SkData.cpp
diff options
context:
space:
mode:
authorGravatar reed <reed@google.com>2015-06-17 09:58:24 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2015-06-17 09:58:25 -0700
commit6b7f34e34cc0ce397ce5e4ddc0c244f372b4f840 (patch)
tree8a346c19453a4a2a073153bd13723907535da8fe /src/core/SkData.cpp
parent12555d7efbd1e2238e7e7a7eee6b651f304ba451 (diff)
simplify release-proc for SkData, removing unneeded size param
Diffstat (limited to 'src/core/SkData.cpp')
-rw-r--r--src/core/SkData.cpp38
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();
}