Lines Matching refs:pZip
1370 mz_bool mz_zip_reader_init(mz_zip_archive *pZip, mz_uint64 size,
1372 mz_bool mz_zip_reader_init_mem(mz_zip_archive *pZip, const void *pMem,
1376 mz_bool mz_zip_reader_init_file(mz_zip_archive *pZip, const char *pFilename,
1381 mz_uint mz_zip_reader_get_num_files(mz_zip_archive *pZip);
1384 mz_bool mz_zip_reader_file_stat(mz_zip_archive *pZip, mz_uint file_index,
1388 mz_bool mz_zip_reader_is_file_a_directory(mz_zip_archive *pZip,
1390 mz_bool mz_zip_reader_is_file_encrypted(mz_zip_archive *pZip,
1397 mz_uint mz_zip_reader_get_filename(mz_zip_archive *pZip, mz_uint file_index,
1403 int mz_zip_reader_locate_file(mz_zip_archive *pZip, const char *pName,
1407 mz_bool mz_zip_reader_extract_to_mem_no_alloc(mz_zip_archive *pZip,
1413 mz_zip_archive *pZip, const char *pFilename, void *pBuf, size_t buf_size,
1417 mz_bool mz_zip_reader_extract_to_mem(mz_zip_archive *pZip, mz_uint file_index,
1420 mz_bool mz_zip_reader_extract_file_to_mem(mz_zip_archive *pZip,
1425 void *mz_zip_reader_extract_to_heap(mz_zip_archive *pZip, mz_uint file_index,
1427 void *mz_zip_reader_extract_file_to_heap(mz_zip_archive *pZip,
1432 mz_bool mz_zip_reader_extract_to_callback(mz_zip_archive *pZip,
1436 mz_bool mz_zip_reader_extract_file_to_callback(mz_zip_archive *pZip,
1445 mz_bool mz_zip_reader_extract_to_file(mz_zip_archive *pZip, mz_uint file_index,
1447 mz_bool mz_zip_reader_extract_file_to_file(mz_zip_archive *pZip,
1455 mz_bool mz_zip_reader_end(mz_zip_archive *pZip);
1462 mz_bool mz_zip_writer_init(mz_zip_archive *pZip, mz_uint64 existing_size);
1463 mz_bool mz_zip_writer_init_heap(mz_zip_archive *pZip,
1468 mz_bool mz_zip_writer_init_file(mz_zip_archive *pZip, const char *pFilename,
1485 mz_bool mz_zip_writer_init_from_reader(mz_zip_archive *pZip,
1495 mz_bool mz_zip_writer_add_mem(mz_zip_archive *pZip, const char *pArchive_name,
1498 mz_bool mz_zip_writer_add_mem_ex(mz_zip_archive *pZip,
1511 mz_bool mz_zip_writer_add_file(mz_zip_archive *pZip, const char *pArchive_name,
1519 mz_bool mz_zip_writer_add_from_zip_reader(mz_zip_archive *pZip,
1529 mz_bool mz_zip_writer_finalize_archive(mz_zip_archive *pZip);
1530 mz_bool mz_zip_writer_finalize_heap_archive(mz_zip_archive *pZip, void **pBuf,
1536 mz_bool mz_zip_writer_end(mz_zip_archive *pZip);
4797 static MZ_FORCEINLINE void mz_zip_array_clear(mz_zip_archive *pZip, in mz_zip_array_clear() argument
4799 pZip->m_pFree(pZip->m_pAlloc_opaque, pArray->m_p); in mz_zip_array_clear()
4803 static mz_bool mz_zip_array_ensure_capacity(mz_zip_archive *pZip, in mz_zip_array_ensure_capacity() argument
4815 if (NULL == (pNew_p = pZip->m_pRealloc(pZip->m_pAlloc_opaque, pArray->m_p, in mz_zip_array_ensure_capacity()
4823 static MZ_FORCEINLINE mz_bool mz_zip_array_reserve(mz_zip_archive *pZip, in mz_zip_array_reserve() argument
4828 if (!mz_zip_array_ensure_capacity(pZip, pArray, new_capacity, growing)) in mz_zip_array_reserve()
4834 static MZ_FORCEINLINE mz_bool mz_zip_array_resize(mz_zip_archive *pZip, in mz_zip_array_resize() argument
4839 if (!mz_zip_array_ensure_capacity(pZip, pArray, new_size, growing)) in mz_zip_array_resize()
4846 static MZ_FORCEINLINE mz_bool mz_zip_array_ensure_room(mz_zip_archive *pZip, in mz_zip_array_ensure_room() argument
4849 return mz_zip_array_reserve(pZip, pArray, pArray->m_size + n, MZ_TRUE); in mz_zip_array_ensure_room()
4852 static MZ_FORCEINLINE mz_bool mz_zip_array_push_back(mz_zip_archive *pZip, in mz_zip_array_push_back() argument
4857 if (!mz_zip_array_resize(pZip, pArray, orig_size + n, MZ_TRUE)) in mz_zip_array_push_back()
4927 static mz_bool mz_zip_reader_init_internal(mz_zip_archive *pZip, in mz_zip_reader_init_internal() argument
4930 if ((!pZip) || (pZip->m_pState) || (pZip->m_zip_mode != MZ_ZIP_MODE_INVALID)) in mz_zip_reader_init_internal()
4933 if (!pZip->m_pAlloc) pZip->m_pAlloc = def_alloc_func; in mz_zip_reader_init_internal()
4934 if (!pZip->m_pFree) pZip->m_pFree = def_free_func; in mz_zip_reader_init_internal()
4935 if (!pZip->m_pRealloc) pZip->m_pRealloc = def_realloc_func; in mz_zip_reader_init_internal()
4937 pZip->m_zip_mode = MZ_ZIP_MODE_READING; in mz_zip_reader_init_internal()
4938 pZip->m_archive_size = 0; in mz_zip_reader_init_internal()
4939 pZip->m_central_directory_file_ofs = 0; in mz_zip_reader_init_internal()
4940 pZip->m_total_files = 0; in mz_zip_reader_init_internal()
4942 if (NULL == (pZip->m_pState = (mz_zip_internal_state *)pZip->m_pAlloc( in mz_zip_reader_init_internal()
4943 pZip->m_pAlloc_opaque, 1, sizeof(mz_zip_internal_state)))) in mz_zip_reader_init_internal()
4945 memset(pZip->m_pState, 0, sizeof(mz_zip_internal_state)); in mz_zip_reader_init_internal()
4946 MZ_ZIP_ARRAY_SET_ELEMENT_SIZE(&pZip->m_pState->m_central_dir, in mz_zip_reader_init_internal()
4948 MZ_ZIP_ARRAY_SET_ELEMENT_SIZE(&pZip->m_pState->m_central_dir_offsets, in mz_zip_reader_init_internal()
4950 MZ_ZIP_ARRAY_SET_ELEMENT_SIZE(&pZip->m_pState->m_sorted_central_dir_offsets, in mz_zip_reader_init_internal()
4993 mz_zip_archive *pZip) { in mz_zip_reader_sort_central_dir_offsets_by_filename() argument
4994 mz_zip_internal_state *pState = pZip->m_pState; in mz_zip_reader_sort_central_dir_offsets_by_filename()
4999 const int size = pZip->m_total_files; in mz_zip_reader_sort_central_dir_offsets_by_filename()
5038 static mz_bool mz_zip_reader_read_central_dir(mz_zip_archive *pZip, in mz_zip_reader_read_central_dir() argument
5050 if (pZip->m_archive_size < MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIZE) in mz_zip_reader_read_central_dir()
5055 MZ_MAX((mz_int64)pZip->m_archive_size - (mz_int64)sizeof(buf_u32), 0); in mz_zip_reader_read_central_dir()
5058 n = (int)MZ_MIN(sizeof(buf_u32), pZip->m_archive_size - cur_file_ofs); in mz_zip_reader_read_central_dir()
5059 if (pZip->m_pRead(pZip->m_pIO_opaque, cur_file_ofs, pBuf, n) != (mz_uint)n) in mz_zip_reader_read_central_dir()
5067 if ((!cur_file_ofs) || ((pZip->m_archive_size - cur_file_ofs) >= in mz_zip_reader_read_central_dir()
5073 if (pZip->m_pRead(pZip->m_pIO_opaque, cur_file_ofs, pBuf, in mz_zip_reader_read_central_dir()
5079 ((pZip->m_total_files = in mz_zip_reader_read_central_dir()
5091 pZip->m_total_files * MZ_ZIP_CENTRAL_DIR_HEADER_SIZE) in mz_zip_reader_read_central_dir()
5095 if ((cdir_ofs + (mz_uint64)cdir_size) > pZip->m_archive_size) return MZ_FALSE; in mz_zip_reader_read_central_dir()
5097 pZip->m_central_directory_file_ofs = cdir_ofs; in mz_zip_reader_read_central_dir()
5099 if (pZip->m_total_files) { in mz_zip_reader_read_central_dir()
5105 if ((!mz_zip_array_resize(pZip, &pZip->m_pState->m_central_dir, cdir_size, in mz_zip_reader_read_central_dir()
5107 (!mz_zip_array_resize(pZip, &pZip->m_pState->m_central_dir_offsets, in mz_zip_reader_read_central_dir()
5108 pZip->m_total_files, MZ_FALSE))) in mz_zip_reader_read_central_dir()
5112 if (!mz_zip_array_resize(pZip, in mz_zip_reader_read_central_dir()
5113 &pZip->m_pState->m_sorted_central_dir_offsets, in mz_zip_reader_read_central_dir()
5114 pZip->m_total_files, MZ_FALSE)) in mz_zip_reader_read_central_dir()
5118 if (pZip->m_pRead(pZip->m_pIO_opaque, cdir_ofs, in mz_zip_reader_read_central_dir()
5119 pZip->m_pState->m_central_dir.m_p, in mz_zip_reader_read_central_dir()
5126 p = (const mz_uint8 *)pZip->m_pState->m_central_dir.m_p; in mz_zip_reader_read_central_dir()
5127 for (n = cdir_size, i = 0; i < pZip->m_total_files; ++i) { in mz_zip_reader_read_central_dir()
5132 MZ_ZIP_ARRAY_ELEMENT(&pZip->m_pState->m_central_dir_offsets, mz_uint32, in mz_zip_reader_read_central_dir()
5134 (mz_uint32)(p - (const mz_uint8 *)pZip->m_pState->m_central_dir.m_p); in mz_zip_reader_read_central_dir()
5136 MZ_ZIP_ARRAY_ELEMENT(&pZip->m_pState->m_sorted_central_dir_offsets, in mz_zip_reader_read_central_dir()
5148 MZ_ZIP_LOCAL_DIR_HEADER_SIZE + comp_size) > pZip->m_archive_size) in mz_zip_reader_read_central_dir()
5162 mz_zip_reader_sort_central_dir_offsets_by_filename(pZip); in mz_zip_reader_read_central_dir()
5167 mz_bool mz_zip_reader_init(mz_zip_archive *pZip, mz_uint64 size, in mz_zip_reader_init() argument
5169 if ((!pZip) || (!pZip->m_pRead)) return MZ_FALSE; in mz_zip_reader_init()
5170 if (!mz_zip_reader_init_internal(pZip, flags)) return MZ_FALSE; in mz_zip_reader_init()
5171 pZip->m_archive_size = size; in mz_zip_reader_init()
5172 if (!mz_zip_reader_read_central_dir(pZip, flags)) { in mz_zip_reader_init()
5173 mz_zip_reader_end(pZip); in mz_zip_reader_init()
5181 mz_zip_archive *pZip = (mz_zip_archive *)pOpaque; in mz_zip_mem_read_func() local
5182 size_t s = (file_ofs >= pZip->m_archive_size) in mz_zip_mem_read_func()
5184 : (size_t)MZ_MIN(pZip->m_archive_size - file_ofs, n); in mz_zip_mem_read_func()
5185 memcpy(pBuf, (const mz_uint8 *)pZip->m_pState->m_pMem + file_ofs, s); in mz_zip_mem_read_func()
5189 mz_bool mz_zip_reader_init_mem(mz_zip_archive *pZip, const void *pMem, in mz_zip_reader_init_mem() argument
5191 if (!mz_zip_reader_init_internal(pZip, flags)) return MZ_FALSE; in mz_zip_reader_init_mem()
5192 pZip->m_archive_size = size; in mz_zip_reader_init_mem()
5193 pZip->m_pRead = mz_zip_mem_read_func; in mz_zip_reader_init_mem()
5194 pZip->m_pIO_opaque = pZip; in mz_zip_reader_init_mem()
5196 pZip->m_pState->m_pMem = const_cast<void *>(pMem); in mz_zip_reader_init_mem()
5198 pZip->m_pState->m_pMem = (void *)pMem; in mz_zip_reader_init_mem()
5200 pZip->m_pState->m_mem_size = size; in mz_zip_reader_init_mem()
5201 if (!mz_zip_reader_read_central_dir(pZip, flags)) { in mz_zip_reader_init_mem()
5202 mz_zip_reader_end(pZip); in mz_zip_reader_init_mem()
5211 mz_zip_archive *pZip = (mz_zip_archive *)pOpaque; in mz_zip_file_read_func() local
5212 mz_int64 cur_ofs = MZ_FTELL64(pZip->m_pState->m_pFile); in mz_zip_file_read_func()
5215 (MZ_FSEEK64(pZip->m_pState->m_pFile, (mz_int64)file_ofs, SEEK_SET)))) in mz_zip_file_read_func()
5217 return MZ_FREAD(pBuf, 1, n, pZip->m_pState->m_pFile); in mz_zip_file_read_func()
5220 mz_bool mz_zip_reader_init_file(mz_zip_archive *pZip, const char *pFilename, in mz_zip_reader_init_file() argument
5230 if (!mz_zip_reader_init_internal(pZip, flags)) { in mz_zip_reader_init_file()
5234 pZip->m_pRead = mz_zip_file_read_func; in mz_zip_reader_init_file()
5235 pZip->m_pIO_opaque = pZip; in mz_zip_reader_init_file()
5236 pZip->m_pState->m_pFile = pFile; in mz_zip_reader_init_file()
5237 pZip->m_archive_size = file_size; in mz_zip_reader_init_file()
5238 if (!mz_zip_reader_read_central_dir(pZip, flags)) { in mz_zip_reader_init_file()
5239 mz_zip_reader_end(pZip); in mz_zip_reader_init_file()
5246 mz_uint mz_zip_reader_get_num_files(mz_zip_archive *pZip) { in mz_zip_reader_get_num_files() argument
5247 return pZip ? pZip->m_total_files : 0; in mz_zip_reader_get_num_files()
5251 mz_zip_archive *pZip, mz_uint file_index) { in mz_zip_reader_get_cdh() argument
5252 if ((!pZip) || (!pZip->m_pState) || (file_index >= pZip->m_total_files) || in mz_zip_reader_get_cdh()
5253 (pZip->m_zip_mode != MZ_ZIP_MODE_READING)) in mz_zip_reader_get_cdh()
5256 &pZip->m_pState->m_central_dir, mz_uint8, in mz_zip_reader_get_cdh()
5257 MZ_ZIP_ARRAY_ELEMENT(&pZip->m_pState->m_central_dir_offsets, mz_uint32, in mz_zip_reader_get_cdh()
5261 mz_bool mz_zip_reader_is_file_encrypted(mz_zip_archive *pZip, in mz_zip_reader_is_file_encrypted() argument
5264 const mz_uint8 *p = mz_zip_reader_get_cdh(pZip, file_index); in mz_zip_reader_is_file_encrypted()
5270 mz_bool mz_zip_reader_is_file_a_directory(mz_zip_archive *pZip, in mz_zip_reader_is_file_a_directory() argument
5273 const mz_uint8 *p = mz_zip_reader_get_cdh(pZip, file_index); in mz_zip_reader_is_file_a_directory()
5295 mz_bool mz_zip_reader_file_stat(mz_zip_archive *pZip, mz_uint file_index, in mz_zip_reader_file_stat() argument
5298 const mz_uint8 *p = mz_zip_reader_get_cdh(pZip, file_index); in mz_zip_reader_file_stat()
5304 &pZip->m_pState->m_central_dir_offsets, mz_uint32, file_index); in mz_zip_reader_file_stat()
5340 mz_uint mz_zip_reader_get_filename(mz_zip_archive *pZip, mz_uint file_index, in mz_zip_reader_get_filename() argument
5343 const mz_uint8 *p = mz_zip_reader_get_cdh(pZip, file_index); in mz_zip_reader_get_filename()
5389 static int mz_zip_reader_locate_file_binary_search(mz_zip_archive *pZip, in mz_zip_reader_locate_file_binary_search() argument
5391 mz_zip_internal_state *pState = pZip->m_pState; in mz_zip_reader_locate_file_binary_search()
5396 const int size = pZip->m_total_files; in mz_zip_reader_locate_file_binary_search()
5414 int mz_zip_reader_locate_file(mz_zip_archive *pZip, const char *pName, in mz_zip_reader_locate_file() argument
5418 if ((!pZip) || (!pZip->m_pState) || (!pName) || in mz_zip_reader_locate_file()
5419 (pZip->m_zip_mode != MZ_ZIP_MODE_READING)) in mz_zip_reader_locate_file()
5422 (!pComment) && (pZip->m_pState->m_sorted_central_dir_offsets.m_size)) in mz_zip_reader_locate_file()
5423 return mz_zip_reader_locate_file_binary_search(pZip, pName); in mz_zip_reader_locate_file()
5428 for (file_index = 0; file_index < pZip->m_total_files; file_index++) { in mz_zip_reader_locate_file()
5430 &pZip->m_pState->m_central_dir, mz_uint8, in mz_zip_reader_locate_file()
5431 MZ_ZIP_ARRAY_ELEMENT(&pZip->m_pState->m_central_dir_offsets, mz_uint32, in mz_zip_reader_locate_file()
5465 mz_bool mz_zip_reader_extract_to_mem_no_alloc(mz_zip_archive *pZip, in mz_zip_reader_extract_to_mem_no_alloc() argument
5483 if (!mz_zip_reader_file_stat(pZip, file_index, &file_stat)) return MZ_FALSE; in mz_zip_reader_extract_to_mem_no_alloc()
5493 if (mz_zip_reader_is_file_a_directory(pZip, file_index)) return MZ_TRUE; in mz_zip_reader_extract_to_mem_no_alloc()
5510 if (pZip->m_pRead(pZip->m_pIO_opaque, cur_file_ofs, pLocal_header, in mz_zip_reader_extract_to_mem_no_alloc()
5520 if ((cur_file_ofs + file_stat.m_comp_size) > pZip->m_archive_size) in mz_zip_reader_extract_to_mem_no_alloc()
5525 if (pZip->m_pRead(pZip->m_pIO_opaque, cur_file_ofs, pBuf, in mz_zip_reader_extract_to_mem_no_alloc()
5537 if (pZip->m_pState->m_pMem) { in mz_zip_reader_extract_to_mem_no_alloc()
5539 pRead_buf = (mz_uint8 *)pZip->m_pState->m_pMem + cur_file_ofs; in mz_zip_reader_extract_to_mem_no_alloc()
5560 if (NULL == (pRead_buf = pZip->m_pAlloc(pZip->m_pAlloc_opaque, 1, in mz_zip_reader_extract_to_mem_no_alloc()
5570 if ((!read_buf_avail) && (!pZip->m_pState->m_pMem)) { in mz_zip_reader_extract_to_mem_no_alloc()
5572 if (pZip->m_pRead(pZip->m_pIO_opaque, cur_file_ofs, pRead_buf, in mz_zip_reader_extract_to_mem_no_alloc()
5600 if ((!pZip->m_pState->m_pMem) && (!pUser_read_buf)) in mz_zip_reader_extract_to_mem_no_alloc()
5601 pZip->m_pFree(pZip->m_pAlloc_opaque, pRead_buf); in mz_zip_reader_extract_to_mem_no_alloc()
5607 mz_zip_archive *pZip, const char *pFilename, void *pBuf, size_t buf_size, in mz_zip_reader_extract_file_to_mem_no_alloc() argument
5609 int file_index = mz_zip_reader_locate_file(pZip, pFilename, NULL, flags); in mz_zip_reader_extract_file_to_mem_no_alloc()
5611 return mz_zip_reader_extract_to_mem_no_alloc(pZip, file_index, pBuf, buf_size, in mz_zip_reader_extract_file_to_mem_no_alloc()
5616 mz_bool mz_zip_reader_extract_to_mem(mz_zip_archive *pZip, mz_uint file_index, in mz_zip_reader_extract_to_mem() argument
5619 return mz_zip_reader_extract_to_mem_no_alloc(pZip, file_index, pBuf, buf_size, in mz_zip_reader_extract_to_mem()
5623 mz_bool mz_zip_reader_extract_file_to_mem(mz_zip_archive *pZip, in mz_zip_reader_extract_file_to_mem() argument
5626 return mz_zip_reader_extract_file_to_mem_no_alloc(pZip, pFilename, pBuf, in mz_zip_reader_extract_file_to_mem()
5630 void *mz_zip_reader_extract_to_heap(mz_zip_archive *pZip, mz_uint file_index, in mz_zip_reader_extract_to_heap() argument
5633 const mz_uint8 *p = mz_zip_reader_get_cdh(pZip, file_index); in mz_zip_reader_extract_to_heap()
5650 (pBuf = pZip->m_pAlloc(pZip->m_pAlloc_opaque, 1, (size_t)alloc_size))) in mz_zip_reader_extract_to_heap()
5653 if (!mz_zip_reader_extract_to_mem(pZip, file_index, pBuf, (size_t)alloc_size, in mz_zip_reader_extract_to_heap()
5655 pZip->m_pFree(pZip->m_pAlloc_opaque, pBuf); in mz_zip_reader_extract_to_heap()
5663 void *mz_zip_reader_extract_file_to_heap(mz_zip_archive *pZip, in mz_zip_reader_extract_file_to_heap() argument
5666 int file_index = mz_zip_reader_locate_file(pZip, pFilename, NULL, flags); in mz_zip_reader_extract_file_to_heap()
5671 return mz_zip_reader_extract_to_heap(pZip, file_index, pSize, flags); in mz_zip_reader_extract_file_to_heap()
5674 mz_bool mz_zip_reader_extract_to_callback(mz_zip_archive *pZip, in mz_zip_reader_extract_to_callback() argument
5690 if (!mz_zip_reader_file_stat(pZip, file_index, &file_stat)) return MZ_FALSE; in mz_zip_reader_extract_to_callback()
5700 if (mz_zip_reader_is_file_a_directory(pZip, file_index)) return MZ_TRUE; in mz_zip_reader_extract_to_callback()
5712 if (pZip->m_pRead(pZip->m_pIO_opaque, cur_file_ofs, pLocal_header, in mz_zip_reader_extract_to_callback()
5722 if ((cur_file_ofs + file_stat.m_comp_size) > pZip->m_archive_size) in mz_zip_reader_extract_to_callback()
5727 if (pZip->m_pState->m_pMem) { in mz_zip_reader_extract_to_callback()
5728 pRead_buf = (mz_uint8 *)pZip->m_pState->m_pMem + cur_file_ofs; in mz_zip_reader_extract_to_callback()
5734 if (NULL == (pRead_buf = pZip->m_pAlloc(pZip->m_pAlloc_opaque, 1, in mz_zip_reader_extract_to_callback()
5743 if (pZip->m_pState->m_pMem) { in mz_zip_reader_extract_to_callback()
5765 if (pZip->m_pRead(pZip->m_pIO_opaque, cur_file_ofs, pRead_buf, in mz_zip_reader_extract_to_callback()
5789 if (NULL == (pWrite_buf = pZip->m_pAlloc(pZip->m_pAlloc_opaque, 1, in mz_zip_reader_extract_to_callback()
5799 if ((!read_buf_avail) && (!pZip->m_pState->m_pMem)) { in mz_zip_reader_extract_to_callback()
5801 if (pZip->m_pRead(pZip->m_pIO_opaque, cur_file_ofs, pRead_buf, in mz_zip_reader_extract_to_callback()
5845 if (!pZip->m_pState->m_pMem) pZip->m_pFree(pZip->m_pAlloc_opaque, pRead_buf); in mz_zip_reader_extract_to_callback()
5846 if (pWrite_buf) pZip->m_pFree(pZip->m_pAlloc_opaque, pWrite_buf); in mz_zip_reader_extract_to_callback()
5851 mz_bool mz_zip_reader_extract_file_to_callback(mz_zip_archive *pZip, in mz_zip_reader_extract_file_to_callback() argument
5855 int file_index = mz_zip_reader_locate_file(pZip, pFilename, NULL, flags); in mz_zip_reader_extract_file_to_callback()
5857 return mz_zip_reader_extract_to_callback(pZip, file_index, pCallback, pOpaque, in mz_zip_reader_extract_file_to_callback()
5868 mz_bool mz_zip_reader_extract_to_file(mz_zip_archive *pZip, mz_uint file_index, in mz_zip_reader_extract_to_file() argument
5874 if (!mz_zip_reader_file_stat(pZip, file_index, &file_stat)) return MZ_FALSE; in mz_zip_reader_extract_to_file()
5878 pZip, file_index, mz_zip_file_write_callback, pFile, flags); in mz_zip_reader_extract_to_file()
5888 mz_bool mz_zip_reader_end(mz_zip_archive *pZip) { in mz_zip_reader_end() argument
5889 if ((!pZip) || (!pZip->m_pState) || (!pZip->m_pAlloc) || (!pZip->m_pFree) || in mz_zip_reader_end()
5890 (pZip->m_zip_mode != MZ_ZIP_MODE_READING)) in mz_zip_reader_end()
5893 if (pZip->m_pState) { in mz_zip_reader_end()
5894 mz_zip_internal_state *pState = pZip->m_pState; in mz_zip_reader_end()
5895 pZip->m_pState = NULL; in mz_zip_reader_end()
5896 mz_zip_array_clear(pZip, &pState->m_central_dir); in mz_zip_reader_end()
5897 mz_zip_array_clear(pZip, &pState->m_central_dir_offsets); in mz_zip_reader_end()
5898 mz_zip_array_clear(pZip, &pState->m_sorted_central_dir_offsets); in mz_zip_reader_end()
5907 pZip->m_pFree(pZip->m_pAlloc_opaque, pState); in mz_zip_reader_end()
5909 pZip->m_zip_mode = MZ_ZIP_MODE_INVALID; in mz_zip_reader_end()
5915 mz_bool mz_zip_reader_extract_file_to_file(mz_zip_archive *pZip, in mz_zip_reader_extract_file_to_file() argument
5920 mz_zip_reader_locate_file(pZip, pArchive_filename, NULL, flags); in mz_zip_reader_extract_file_to_file()
5922 return mz_zip_reader_extract_to_file(pZip, file_index, pDst_filename, flags); in mz_zip_reader_extract_file_to_file()
5943 mz_bool mz_zip_writer_init(mz_zip_archive *pZip, mz_uint64 existing_size) { in mz_zip_writer_init() argument
5944 if ((!pZip) || (pZip->m_pState) || (!pZip->m_pWrite) || in mz_zip_writer_init()
5945 (pZip->m_zip_mode != MZ_ZIP_MODE_INVALID)) in mz_zip_writer_init()
5948 if (pZip->m_file_offset_alignment) { in mz_zip_writer_init()
5950 if (pZip->m_file_offset_alignment & (pZip->m_file_offset_alignment - 1)) in mz_zip_writer_init()
5954 if (!pZip->m_pAlloc) pZip->m_pAlloc = def_alloc_func; in mz_zip_writer_init()
5955 if (!pZip->m_pFree) pZip->m_pFree = def_free_func; in mz_zip_writer_init()
5956 if (!pZip->m_pRealloc) pZip->m_pRealloc = def_realloc_func; in mz_zip_writer_init()
5958 pZip->m_zip_mode = MZ_ZIP_MODE_WRITING; in mz_zip_writer_init()
5959 pZip->m_archive_size = existing_size; in mz_zip_writer_init()
5960 pZip->m_central_directory_file_ofs = 0; in mz_zip_writer_init()
5961 pZip->m_total_files = 0; in mz_zip_writer_init()
5963 if (NULL == (pZip->m_pState = (mz_zip_internal_state *)pZip->m_pAlloc( in mz_zip_writer_init()
5964 pZip->m_pAlloc_opaque, 1, sizeof(mz_zip_internal_state)))) in mz_zip_writer_init()
5966 memset(pZip->m_pState, 0, sizeof(mz_zip_internal_state)); in mz_zip_writer_init()
5967 MZ_ZIP_ARRAY_SET_ELEMENT_SIZE(&pZip->m_pState->m_central_dir, in mz_zip_writer_init()
5969 MZ_ZIP_ARRAY_SET_ELEMENT_SIZE(&pZip->m_pState->m_central_dir_offsets, in mz_zip_writer_init()
5971 MZ_ZIP_ARRAY_SET_ELEMENT_SIZE(&pZip->m_pState->m_sorted_central_dir_offsets, in mz_zip_writer_init()
5978 mz_zip_archive *pZip = (mz_zip_archive *)pOpaque; in mz_zip_heap_write_func() local
5979 mz_zip_internal_state *pState = pZip->m_pState; in mz_zip_heap_write_func()
5993 if (NULL == (pNew_block = pZip->m_pRealloc( in mz_zip_heap_write_func()
5994 pZip->m_pAlloc_opaque, pState->m_pMem, 1, new_capacity))) in mz_zip_heap_write_func()
6004 mz_bool mz_zip_writer_init_heap(mz_zip_archive *pZip, in mz_zip_writer_init_heap() argument
6007 pZip->m_pWrite = mz_zip_heap_write_func; in mz_zip_writer_init_heap()
6008 pZip->m_pIO_opaque = pZip; in mz_zip_writer_init_heap()
6009 if (!mz_zip_writer_init(pZip, size_to_reserve_at_beginning)) return MZ_FALSE; in mz_zip_writer_init_heap()
6012 if (NULL == (pZip->m_pState->m_pMem = pZip->m_pAlloc( in mz_zip_writer_init_heap()
6013 pZip->m_pAlloc_opaque, 1, initial_allocation_size))) { in mz_zip_writer_init_heap()
6014 mz_zip_writer_end(pZip); in mz_zip_writer_init_heap()
6017 pZip->m_pState->m_mem_capacity = initial_allocation_size; in mz_zip_writer_init_heap()
6025 mz_zip_archive *pZip = (mz_zip_archive *)pOpaque; in mz_zip_file_write_func() local
6026 mz_int64 cur_ofs = MZ_FTELL64(pZip->m_pState->m_pFile); in mz_zip_file_write_func()
6029 (MZ_FSEEK64(pZip->m_pState->m_pFile, (mz_int64)file_ofs, SEEK_SET)))) in mz_zip_file_write_func()
6031 return MZ_FWRITE(pBuf, 1, n, pZip->m_pState->m_pFile); in mz_zip_file_write_func()
6034 mz_bool mz_zip_writer_init_file(mz_zip_archive *pZip, const char *pFilename, in mz_zip_writer_init_file() argument
6037 pZip->m_pWrite = mz_zip_file_write_func; in mz_zip_writer_init_file()
6038 pZip->m_pIO_opaque = pZip; in mz_zip_writer_init_file()
6039 if (!mz_zip_writer_init(pZip, size_to_reserve_at_beginning)) return MZ_FALSE; in mz_zip_writer_init_file()
6041 mz_zip_writer_end(pZip); in mz_zip_writer_init_file()
6044 pZip->m_pState->m_pFile = pFile; in mz_zip_writer_init_file()
6051 if (pZip->m_pWrite(pZip->m_pIO_opaque, cur_ofs, buf, n) != n) { in mz_zip_writer_init_file()
6052 mz_zip_writer_end(pZip); in mz_zip_writer_init_file()
6063 mz_bool mz_zip_writer_init_from_reader(mz_zip_archive *pZip, in mz_zip_writer_init_from_reader() argument
6066 if ((!pZip) || (!pZip->m_pState) || (pZip->m_zip_mode != MZ_ZIP_MODE_READING)) in mz_zip_writer_init_from_reader()
6070 if ((pZip->m_total_files == 0xFFFF) || in mz_zip_writer_init_from_reader()
6071 ((pZip->m_archive_size + MZ_ZIP_CENTRAL_DIR_HEADER_SIZE + in mz_zip_writer_init_from_reader()
6075 pState = pZip->m_pState; in mz_zip_writer_init_from_reader()
6083 if (pZip->m_pIO_opaque != pZip) return MZ_FALSE; in mz_zip_writer_init_from_reader()
6085 pZip->m_pWrite = mz_zip_file_write_func; in mz_zip_writer_init_from_reader()
6090 mz_zip_reader_end(pZip); in mz_zip_writer_init_from_reader()
6097 if (pZip->m_pIO_opaque != pZip) return MZ_FALSE; in mz_zip_writer_init_from_reader()
6099 pZip->m_pWrite = mz_zip_heap_write_func; in mz_zip_writer_init_from_reader()
6103 else if (!pZip->m_pWrite) in mz_zip_writer_init_from_reader()
6108 pZip->m_archive_size = pZip->m_central_directory_file_ofs; in mz_zip_writer_init_from_reader()
6109 pZip->m_zip_mode = MZ_ZIP_MODE_WRITING; in mz_zip_writer_init_from_reader()
6110 pZip->m_central_directory_file_ofs = 0; in mz_zip_writer_init_from_reader()
6115 mz_bool mz_zip_writer_add_mem(mz_zip_archive *pZip, const char *pArchive_name, in mz_zip_writer_add_mem() argument
6118 return mz_zip_writer_add_mem_ex(pZip, pArchive_name, pBuf, buf_size, NULL, 0, in mz_zip_writer_add_mem()
6141 mz_zip_archive *pZip, mz_uint8 *pDst, mz_uint16 filename_size, in mz_zip_writer_create_local_dir_header() argument
6145 (void)pZip; in mz_zip_writer_create_local_dir_header()
6162 mz_zip_archive *pZip, mz_uint8 *pDst, mz_uint16 filename_size, in mz_zip_writer_create_central_dir_header() argument
6167 (void)pZip; in mz_zip_writer_create_central_dir_header()
6187 mz_zip_archive *pZip, const char *pFilename, mz_uint16 filename_size, in mz_zip_writer_add_to_central_dir() argument
6193 mz_zip_internal_state *pState = pZip->m_pState; in mz_zip_writer_add_to_central_dir()
6206 pZip, central_dir_header, filename_size, extra_size, comment_size, in mz_zip_writer_add_to_central_dir()
6211 if ((!mz_zip_array_push_back(pZip, &pState->m_central_dir, central_dir_header, in mz_zip_writer_add_to_central_dir()
6213 (!mz_zip_array_push_back(pZip, &pState->m_central_dir, pFilename, in mz_zip_writer_add_to_central_dir()
6215 (!mz_zip_array_push_back(pZip, &pState->m_central_dir, pExtra, in mz_zip_writer_add_to_central_dir()
6217 (!mz_zip_array_push_back(pZip, &pState->m_central_dir, pComment, in mz_zip_writer_add_to_central_dir()
6219 (!mz_zip_array_push_back(pZip, &pState->m_central_dir_offsets, in mz_zip_writer_add_to_central_dir()
6222 mz_zip_array_resize(pZip, &pState->m_central_dir, orig_central_dir_size, in mz_zip_writer_add_to_central_dir()
6243 mz_zip_archive *pZip) { in mz_zip_writer_compute_padding_needed_for_file_alignment() argument
6245 if (!pZip->m_file_offset_alignment) return 0; in mz_zip_writer_compute_padding_needed_for_file_alignment()
6246 n = (mz_uint32)(pZip->m_archive_size & (pZip->m_file_offset_alignment - 1)); in mz_zip_writer_compute_padding_needed_for_file_alignment()
6247 return (pZip->m_file_offset_alignment - n) & in mz_zip_writer_compute_padding_needed_for_file_alignment()
6248 (pZip->m_file_offset_alignment - 1); in mz_zip_writer_compute_padding_needed_for_file_alignment()
6251 static mz_bool mz_zip_writer_write_zeros(mz_zip_archive *pZip, in mz_zip_writer_write_zeros() argument
6257 if (pZip->m_pWrite(pZip->m_pIO_opaque, cur_file_ofs, buf, s) != s) in mz_zip_writer_write_zeros()
6265 mz_bool mz_zip_writer_add_mem_ex(mz_zip_archive *pZip, in mz_zip_writer_add_mem_ex() argument
6273 mz_uint64 local_dir_header_ofs = pZip->m_archive_size, in mz_zip_writer_add_mem_ex()
6274 cur_archive_file_ofs = pZip->m_archive_size, comp_size = 0; in mz_zip_writer_add_mem_ex()
6286 if ((!pZip) || (!pZip->m_pState) || in mz_zip_writer_add_mem_ex()
6287 (pZip->m_zip_mode != MZ_ZIP_MODE_WRITING) || ((buf_size) && (!pBuf)) || in mz_zip_writer_add_mem_ex()
6289 (pZip->m_total_files == 0xFFFF) || (level > MZ_UBER_COMPRESSION)) in mz_zip_writer_add_mem_ex()
6292 pState = pZip->m_pState; in mz_zip_writer_add_mem_ex()
6312 mz_zip_writer_compute_padding_needed_for_file_alignment(pZip); in mz_zip_writer_add_mem_ex()
6315 if ((pZip->m_total_files == 0xFFFF) || in mz_zip_writer_add_mem_ex()
6316 ((pZip->m_archive_size + num_alignment_padding_bytes + in mz_zip_writer_add_mem_ex()
6332 pZip, &pState->m_central_dir, in mz_zip_writer_add_mem_ex()
6334 (!mz_zip_array_ensure_room(pZip, &pState->m_central_dir_offsets, 1))) in mz_zip_writer_add_mem_ex()
6338 if (NULL == (pComp = (tdefl_compressor *)pZip->m_pAlloc( in mz_zip_writer_add_mem_ex()
6339 pZip->m_pAlloc_opaque, 1, sizeof(tdefl_compressor)))) in mz_zip_writer_add_mem_ex()
6344 pZip, cur_archive_file_ofs, in mz_zip_writer_add_mem_ex()
6346 pZip->m_pFree(pZip->m_pAlloc_opaque, pComp); in mz_zip_writer_add_mem_ex()
6350 if (pZip->m_file_offset_alignment) { in mz_zip_writer_add_mem_ex()
6351 MZ_ASSERT((local_dir_header_ofs & (pZip->m_file_offset_alignment - 1)) == in mz_zip_writer_add_mem_ex()
6358 if (pZip->m_pWrite(pZip->m_pIO_opaque, cur_archive_file_ofs, pArchive_name, in mz_zip_writer_add_mem_ex()
6360 pZip->m_pFree(pZip->m_pAlloc_opaque, pComp); in mz_zip_writer_add_mem_ex()
6376 if (pZip->m_pWrite(pZip->m_pIO_opaque, cur_archive_file_ofs, pBuf, in mz_zip_writer_add_mem_ex()
6378 pZip->m_pFree(pZip->m_pAlloc_opaque, pComp); in mz_zip_writer_add_mem_ex()
6389 state.m_pZip = pZip; in mz_zip_writer_add_mem_ex()
6399 pZip->m_pFree(pZip->m_pAlloc_opaque, pComp); in mz_zip_writer_add_mem_ex()
6409 pZip->m_pFree(pZip->m_pAlloc_opaque, pComp); in mz_zip_writer_add_mem_ex()
6417 pZip, local_dir_header, (mz_uint16)archive_name_size, 0, uncomp_size, in mz_zip_writer_add_mem_ex()
6421 if (pZip->m_pWrite(pZip->m_pIO_opaque, local_dir_header_ofs, local_dir_header, in mz_zip_writer_add_mem_ex()
6426 pZip, pArchive_name, (mz_uint16)archive_name_size, NULL, 0, pComment, in mz_zip_writer_add_mem_ex()
6431 pZip->m_total_files++; in mz_zip_writer_add_mem_ex()
6432 pZip->m_archive_size = cur_archive_file_ofs; in mz_zip_writer_add_mem_ex()
6438 mz_bool mz_zip_writer_add_file(mz_zip_archive *pZip, const char *pArchive_name, in mz_zip_writer_add_file() argument
6444 mz_uint64 local_dir_header_ofs = pZip->m_archive_size, in mz_zip_writer_add_file()
6445 cur_archive_file_ofs = pZip->m_archive_size, uncomp_size = 0, in mz_zip_writer_add_file()
6454 if ((!pZip) || (!pZip->m_pState) || in mz_zip_writer_add_file()
6455 (pZip->m_zip_mode != MZ_ZIP_MODE_WRITING) || (!pArchive_name) || in mz_zip_writer_add_file()
6465 mz_zip_writer_compute_padding_needed_for_file_alignment(pZip); in mz_zip_writer_add_file()
6468 if ((pZip->m_total_files == 0xFFFF) || in mz_zip_writer_add_file()
6469 ((pZip->m_archive_size + num_alignment_padding_bytes + in mz_zip_writer_add_file()
6491 pZip, cur_archive_file_ofs, in mz_zip_writer_add_file()
6497 if (pZip->m_file_offset_alignment) { in mz_zip_writer_add_file()
6498 MZ_ASSERT((local_dir_header_ofs & (pZip->m_file_offset_alignment - 1)) == in mz_zip_writer_add_file()
6505 if (pZip->m_pWrite(pZip->m_pIO_opaque, cur_archive_file_ofs, pArchive_name, in mz_zip_writer_add_file()
6515 pZip->m_pAlloc(pZip->m_pAlloc_opaque, 1, MZ_ZIP_MAX_IO_BUF_SIZE); in mz_zip_writer_add_file()
6526 (pZip->m_pWrite(pZip->m_pIO_opaque, cur_archive_file_ofs, pRead_buf, in mz_zip_writer_add_file()
6528 pZip->m_pFree(pZip->m_pAlloc_opaque, pRead_buf); in mz_zip_writer_add_file()
6541 tdefl_compressor *pComp = (tdefl_compressor *)pZip->m_pAlloc( in mz_zip_writer_add_file()
6542 pZip->m_pAlloc_opaque, 1, sizeof(tdefl_compressor)); in mz_zip_writer_add_file()
6544 pZip->m_pFree(pZip->m_pAlloc_opaque, pRead_buf); in mz_zip_writer_add_file()
6549 state.m_pZip = pZip; in mz_zip_writer_add_file()
6557 pZip->m_pFree(pZip->m_pAlloc_opaque, pComp); in mz_zip_writer_add_file()
6558 pZip->m_pFree(pZip->m_pAlloc_opaque, pRead_buf); in mz_zip_writer_add_file()
6585 pZip->m_pFree(pZip->m_pAlloc_opaque, pComp); in mz_zip_writer_add_file()
6588 pZip->m_pFree(pZip->m_pAlloc_opaque, pRead_buf); in mz_zip_writer_add_file()
6599 pZip->m_pFree(pZip->m_pAlloc_opaque, pRead_buf); in mz_zip_writer_add_file()
6610 pZip, local_dir_header, (mz_uint16)archive_name_size, 0, uncomp_size, in mz_zip_writer_add_file()
6614 if (pZip->m_pWrite(pZip->m_pIO_opaque, local_dir_header_ofs, local_dir_header, in mz_zip_writer_add_file()
6619 pZip, pArchive_name, (mz_uint16)archive_name_size, NULL, 0, pComment, in mz_zip_writer_add_file()
6624 pZip->m_total_files++; in mz_zip_writer_add_file()
6625 pZip->m_archive_size = cur_archive_file_ofs; in mz_zip_writer_add_file()
6631 mz_bool mz_zip_writer_add_from_zip_reader(mz_zip_archive *pZip, in mz_zip_writer_add_from_zip_reader() argument
6647 if ((!pZip) || (!pZip->m_pState) || (pZip->m_zip_mode != MZ_ZIP_MODE_WRITING)) in mz_zip_writer_add_from_zip_reader()
6652 pState = pZip->m_pState; in mz_zip_writer_add_from_zip_reader()
6655 mz_zip_writer_compute_padding_needed_for_file_alignment(pZip); in mz_zip_writer_add_from_zip_reader()
6658 if ((pZip->m_total_files == 0xFFFF) || in mz_zip_writer_add_from_zip_reader()
6659 ((pZip->m_archive_size + num_alignment_padding_bytes + in mz_zip_writer_add_from_zip_reader()
6666 cur_dst_file_ofs = pZip->m_archive_size; in mz_zip_writer_add_from_zip_reader()
6676 if (!mz_zip_writer_write_zeros(pZip, cur_dst_file_ofs, in mz_zip_writer_add_from_zip_reader()
6681 if (pZip->m_file_offset_alignment) { in mz_zip_writer_add_from_zip_reader()
6682 MZ_ASSERT((local_dir_header_ofs & (pZip->m_file_offset_alignment - 1)) == in mz_zip_writer_add_from_zip_reader()
6686 if (pZip->m_pWrite(pZip->m_pIO_opaque, cur_dst_file_ofs, pLocal_header, in mz_zip_writer_add_from_zip_reader()
6697 if (NULL == (pBuf = pZip->m_pAlloc( in mz_zip_writer_add_from_zip_reader()
6698 pZip->m_pAlloc_opaque, 1, in mz_zip_writer_add_from_zip_reader()
6708 pZip->m_pFree(pZip->m_pAlloc_opaque, pBuf); in mz_zip_writer_add_from_zip_reader()
6713 if (pZip->m_pWrite(pZip->m_pIO_opaque, cur_dst_file_ofs, pBuf, n) != n) { in mz_zip_writer_add_from_zip_reader()
6714 pZip->m_pFree(pZip->m_pAlloc_opaque, pBuf); in mz_zip_writer_add_from_zip_reader()
6727 pZip->m_pFree(pZip->m_pAlloc_opaque, pBuf); in mz_zip_writer_add_from_zip_reader()
6732 if (pZip->m_pWrite(pZip->m_pIO_opaque, cur_dst_file_ofs, pBuf, n) != n) { in mz_zip_writer_add_from_zip_reader()
6733 pZip->m_pFree(pZip->m_pAlloc_opaque, pBuf); in mz_zip_writer_add_from_zip_reader()
6740 pZip->m_pFree(pZip->m_pAlloc_opaque, pBuf); in mz_zip_writer_add_from_zip_reader()
6750 if (!mz_zip_array_push_back(pZip, &pState->m_central_dir, central_header, in mz_zip_writer_add_from_zip_reader()
6758 pZip, &pState->m_central_dir, in mz_zip_writer_add_from_zip_reader()
6760 mz_zip_array_resize(pZip, &pState->m_central_dir, orig_central_dir_size, in mz_zip_writer_add_from_zip_reader()
6767 if (!mz_zip_array_push_back(pZip, &pState->m_central_dir_offsets, &n, 1)) { in mz_zip_writer_add_from_zip_reader()
6768 mz_zip_array_resize(pZip, &pState->m_central_dir, orig_central_dir_size, in mz_zip_writer_add_from_zip_reader()
6773 pZip->m_total_files++; in mz_zip_writer_add_from_zip_reader()
6774 pZip->m_archive_size = cur_dst_file_ofs; in mz_zip_writer_add_from_zip_reader()
6779 mz_bool mz_zip_writer_finalize_archive(mz_zip_archive *pZip) { in mz_zip_writer_finalize_archive() argument
6784 if ((!pZip) || (!pZip->m_pState) || (pZip->m_zip_mode != MZ_ZIP_MODE_WRITING)) in mz_zip_writer_finalize_archive()
6787 pState = pZip->m_pState; in mz_zip_writer_finalize_archive()
6790 if ((pZip->m_total_files > 0xFFFF) || in mz_zip_writer_finalize_archive()
6791 ((pZip->m_archive_size + pState->m_central_dir.m_size + in mz_zip_writer_finalize_archive()
6797 if (pZip->m_total_files) { in mz_zip_writer_finalize_archive()
6799 central_dir_ofs = pZip->m_archive_size; in mz_zip_writer_finalize_archive()
6801 pZip->m_central_directory_file_ofs = central_dir_ofs; in mz_zip_writer_finalize_archive()
6802 if (pZip->m_pWrite(pZip->m_pIO_opaque, central_dir_ofs, in mz_zip_writer_finalize_archive()
6806 pZip->m_archive_size += central_dir_size; in mz_zip_writer_finalize_archive()
6814 pZip->m_total_files); in mz_zip_writer_finalize_archive()
6815 MZ_WRITE_LE16(hdr + MZ_ZIP_ECDH_CDIR_TOTAL_ENTRIES_OFS, pZip->m_total_files); in mz_zip_writer_finalize_archive()
6819 if (pZip->m_pWrite(pZip->m_pIO_opaque, pZip->m_archive_size, hdr, in mz_zip_writer_finalize_archive()
6826 pZip->m_archive_size += sizeof(hdr); in mz_zip_writer_finalize_archive()
6828 pZip->m_zip_mode = MZ_ZIP_MODE_WRITING_HAS_BEEN_FINALIZED; in mz_zip_writer_finalize_archive()
6832 mz_bool mz_zip_writer_finalize_heap_archive(mz_zip_archive *pZip, void **pBuf, in mz_zip_writer_finalize_heap_archive() argument
6834 if ((!pZip) || (!pZip->m_pState) || (!pBuf) || (!pSize)) return MZ_FALSE; in mz_zip_writer_finalize_heap_archive()
6835 if (pZip->m_pWrite != mz_zip_heap_write_func) return MZ_FALSE; in mz_zip_writer_finalize_heap_archive()
6836 if (!mz_zip_writer_finalize_archive(pZip)) return MZ_FALSE; in mz_zip_writer_finalize_heap_archive()
6838 *pBuf = pZip->m_pState->m_pMem; in mz_zip_writer_finalize_heap_archive()
6839 *pSize = pZip->m_pState->m_mem_size; in mz_zip_writer_finalize_heap_archive()
6840 pZip->m_pState->m_pMem = NULL; in mz_zip_writer_finalize_heap_archive()
6841 pZip->m_pState->m_mem_size = pZip->m_pState->m_mem_capacity = 0; in mz_zip_writer_finalize_heap_archive()
6845 mz_bool mz_zip_writer_end(mz_zip_archive *pZip) { in mz_zip_writer_end() argument
6848 if ((!pZip) || (!pZip->m_pState) || (!pZip->m_pAlloc) || (!pZip->m_pFree) || in mz_zip_writer_end()
6849 ((pZip->m_zip_mode != MZ_ZIP_MODE_WRITING) && in mz_zip_writer_end()
6850 (pZip->m_zip_mode != MZ_ZIP_MODE_WRITING_HAS_BEEN_FINALIZED))) in mz_zip_writer_end()
6853 pState = pZip->m_pState; in mz_zip_writer_end()
6854 pZip->m_pState = NULL; in mz_zip_writer_end()
6855 mz_zip_array_clear(pZip, &pState->m_central_dir); in mz_zip_writer_end()
6856 mz_zip_array_clear(pZip, &pState->m_central_dir_offsets); in mz_zip_writer_end()
6857 mz_zip_array_clear(pZip, &pState->m_sorted_central_dir_offsets); in mz_zip_writer_end()
6866 if ((pZip->m_pWrite == mz_zip_heap_write_func) && (pState->m_pMem)) { in mz_zip_writer_end()
6867 pZip->m_pFree(pZip->m_pAlloc_opaque, pState->m_pMem); in mz_zip_writer_end()
6871 pZip->m_pFree(pZip->m_pAlloc_opaque, pState); in mz_zip_writer_end()
6872 pZip->m_zip_mode = MZ_ZIP_MODE_INVALID; in mz_zip_writer_end()