Chromium Code Reviews| Index: src/core/SkFlate.cpp |
| diff --git a/src/core/SkFlate.cpp b/src/core/SkFlate.cpp |
| index baf1c777a557b48fd0bb4b1e821af38542947f17..4eb0e526b42a273012c242820c67921f23f3f405 100644 |
| --- a/src/core/SkFlate.cpp |
| +++ b/src/core/SkFlate.cpp |
| @@ -24,12 +24,21 @@ namespace { |
| // static |
| const size_t kBufferSize = 1024; |
| +static void* skia_alloc_func(void*, size_t items, size_t size) { |
| + void* alloc = sk_calloc_throw(items * size); |
|
mtklein
2015/02/27 18:12:50
Do we perhaps need to return something?
hal.canary
2015/02/27 18:18:34
HOW DOES THAT COMPILE!
|
| +} |
| + |
| +static void skia_free_func(void*, void *address) { |
| + sk_free(address); |
| +} |
| + |
| bool doFlate(bool compress, SkStream* src, SkWStream* dst) { |
| uint8_t inputBuffer[kBufferSize]; |
| uint8_t outputBuffer[kBufferSize]; |
| z_stream flateData; |
| - flateData.zalloc = NULL; |
| - flateData.zfree = NULL; |
| + flateData.zalloc = &skia_alloc_func; |
| + flateData.zfree = &skia_free_func; |
| + flateData.opaque = NULL; |
| flateData.next_in = NULL; |
| flateData.avail_in = 0; |
| flateData.next_out = outputBuffer; |
| @@ -170,9 +179,9 @@ SkDeflateWStream::SkDeflateWStream(SkWStream* out) |
| if (!fImpl->fOut) { |
| return; |
| } |
| - fImpl->fZStream.zalloc = Z_NULL; |
| - fImpl->fZStream.zfree = Z_NULL; |
| - fImpl->fZStream.opaque = Z_NULL; |
| + fImpl->fZStream.zalloc = &skia_alloc_func; |
| + fImpl->fZStream.zfree = &skia_free_func; |
| + fImpl->fZStream.opaque = NULL; |
| SkDEBUGCODE(int r =) deflateInit(&fImpl->fZStream, Z_DEFAULT_COMPRESSION); |
| SkASSERT(Z_OK == r); |
| } |