MCPcopy Create free account
hub / github.com/TheRealMJP/DeferredTexturing / mz_zip_heap_write_func

Function mz_zip_heap_write_func

SampleFramework12/v1.00/TinyEXR.cpp:5524–5551  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

5522}
5523
5524static size_t mz_zip_heap_write_func(void *pOpaque, mz_uint64 file_ofs,
5525 const void *pBuf, size_t n) {
5526 mz_zip_archive *pZip = (mz_zip_archive *)pOpaque;
5527 mz_zip_internal_state *pState = pZip->m_pState;
5528 mz_uint64 new_size = MZ_MAX(file_ofs + n, pState->m_mem_size);
5529#ifdef _MSC_VER
5530 if ((!n) ||
5531 ((0, sizeof(size_t) == sizeof(mz_uint32)) && (new_size > 0x7FFFFFFF)))
5532#else
5533 if ((!n) ||
5534 ((sizeof(size_t) == sizeof(mz_uint32)) && (new_size > 0x7FFFFFFF)))
5535#endif
5536 return 0;
5537 if (new_size > pState->m_mem_capacity) {
5538 void *pNew_block;
5539 size_t new_capacity = MZ_MAX(64, pState->m_mem_capacity);
5540 while (new_capacity < new_size)
5541 new_capacity *= 2;
5542 if (NULL == (pNew_block = pZip->m_pRealloc(
5543 pZip->m_pAlloc_opaque, pState->m_pMem, 1, new_capacity)))
5544 return 0;
5545 pState->m_pMem = pNew_block;
5546 pState->m_mem_capacity = new_capacity;
5547 }
5548 memcpy((mz_uint8 *)pState->m_pMem + file_ofs, pBuf, n);
5549 pState->m_mem_size = (size_t)new_size;
5550 return n;
5551}
5552
5553mz_bool mz_zip_writer_init_heap(mz_zip_archive *pZip,
5554 size_t size_to_reserve_at_beginning,

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected