int MFFileSystemZipFile_Dismount(MFMount *pMount) { MFCALLSTACK; MFFileSystem_ReleaseToc(pMount->pEntries, pMount->numFiles); unzClose((unzFile)pMount->pFilesysData); return 0; }
void MFFileSystem_ReleaseToc(MFTOCEntry *pEntry, int numEntries) { MFCALLSTACK; for(int a=0; a<numEntries; a++) { if(pEntry[a].info.attributes & MFFA_Directory) { MFFileSystem_ReleaseToc(pEntry[a].pChildren, pEntry[a].numChildren); } } MFHeap_Free(pEntry); }
void MFFileSystem_ReleaseToc(MFTOCEntry *pEntry, int numEntries) { MFCALLSTACK; for(int a=0; a<numEntries; a++) { if(pEntry[a].flags & MFTF_Directory) { MFFileSystem_ReleaseToc(pEntry[a].pChild, pEntry[a].size); } } MFHeap_Free(pEntry); }