void ReleaseHelpViewer(HHInfo *info) { TRACE("(%p)\n", info); if (!info) return; /* Free allocated strings */ heap_free(info->pszType); heap_free(info->pszCaption); heap_free(info->pszToc); heap_free(info->pszIndex); heap_free(info->pszFile); heap_free(info->pszHome); heap_free(info->pszJump1); heap_free(info->pszJump2); heap_free(info->pszUrlJump1); heap_free(info->pszUrlJump2); if (info->pCHMInfo) CloseCHM(info->pCHMInfo); ReleaseWebBrowser(info); ReleaseContent(info); ReleaseIndex(info); ReleaseSearch(info); if(info->WinType.hwndHelp) DestroyWindow(info->WinType.hwndHelp); heap_free(info); OleUninitialize(); }
void CKnownFileList::Clear() { wxMutexLocker sLock(list_mut); DeleteContents(m_knownFileMap); DeleteContents(m_duplicateFileList); ReleaseIndex(); }
// Make an index by size to speed up FindKnownFile // Size modulo 2^32 is enough here void CKnownFileList::PrepareIndex() { ReleaseIndex(); m_knownSizeMap = new KnownFileSizeMap; for (CKnownFileMap::const_iterator it = m_knownFileMap.begin(); it != m_knownFileMap.end(); ++it) { m_knownSizeMap->insert(std::pair<uint32, CKnownFile*>((uint32) it->second->GetFileSize(), it->second)); } m_duplicateSizeMap = new KnownFileSizeMap; for (KnownFileList::const_iterator it = m_duplicateFileList.begin(); it != m_duplicateFileList.end(); ++it) { m_duplicateSizeMap->insert(std::pair<uint32, CKnownFile*>((uint32) (*it)->GetFileSize(), *it)); } }