MCPcopy Create free account
hub / github.com/JayXon/Leanify / ZlibRecompress

Function ZlibRecompress

leanify.cpp:207–239  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

205
206
207size_t ZlibRecompress(void *src, size_t src_len, size_t size_leanified /*= 0*/)
208{
209 if (!is_fast)
210 {
211 size_t s = 0;
212 uint8_t *buffer = static_cast<uint8_t *>(tinfl_decompress_mem_to_heap(src, src_len, &s, TINFL_FLAG_PARSE_ZLIB_HEADER));
213 if (!buffer)
214 {
215 cerr << "Decompress Zlib data failed." << endl;
216 }
217 else
218 {
219 ZopfliOptions zopfli_options;
220 ZopfliInitOptions(&zopfli_options);
221 zopfli_options.numiterations = iterations;
222
223 size_t new_size = 0;
224 uint8_t *out_buffer = nullptr;
225 ZopfliZlibCompress(&zopfli_options, buffer, s, &out_buffer, &new_size);
226 mz_free(buffer);
227 if (new_size < src_len)
228 {
229 memcpy(static_cast<uint8_t *>(src) - size_leanified, out_buffer, new_size);
230 delete[] out_buffer;
231 return new_size;
232 }
233 delete[] out_buffer;
234 }
235 }
236
237 memmove(static_cast<uint8_t *>(src) - size_leanified, src, src_len);
238 return src_len;
239}

Callers 2

LeanifyMethod · 0.85
LeanifyMethod · 0.85

Calls 4

ZopfliInitOptionsFunction · 0.85
ZopfliZlibCompressFunction · 0.85
mz_freeFunction · 0.85

Tested by

no test coverage detected