| 277 | } |
| 278 | |
| 279 | void DirIvCache::remove(LPCWSTR path) |
| 280 | { |
| 281 | wstring key = path; |
| 282 | |
| 283 | normalize_key(key); |
| 284 | |
| 285 | lock(); |
| 286 | |
| 287 | auto it = m_map.find(key); |
| 288 | |
| 289 | if (it != m_map.end()) { |
| 290 | |
| 291 | DirIvCacheNode *node = it->second; |
| 292 | |
| 293 | m_map.erase(it); |
| 294 | |
| 295 | m_lru_list.erase(node->m_list_it); |
| 296 | |
| 297 | m_spare_node_list.push_back(node); |
| 298 | } |
| 299 | |
| 300 | unlock(); |
| 301 | } |