tst: memfs: MemfsFileNodeMapHasChild: fix problems with streams on directory

This commit is contained in:
Bill Zissimopoulos 2016-10-05 15:21:33 -07:00
parent 27b841faf8
commit d85d36c94f

View File

@ -276,15 +276,21 @@ VOID MemfsFileNodeMapRemove(MEMFS_FILE_NODE_MAP *FileNodeMap, MEMFS_FILE_NODE *F
static inline static inline
BOOLEAN MemfsFileNodeMapHasChild(MEMFS_FILE_NODE_MAP *FileNodeMap, MEMFS_FILE_NODE *FileNode) BOOLEAN MemfsFileNodeMapHasChild(MEMFS_FILE_NODE_MAP *FileNodeMap, MEMFS_FILE_NODE *FileNode)
{ {
BOOLEAN Result; BOOLEAN Result = FALSE;
WCHAR Root[2] = L"\\"; WCHAR Root[2] = L"\\";
PWSTR Remain, Suffix; PWSTR Remain, Suffix;
MEMFS_FILE_NODE_MAP::iterator iter = FileNodeMap->upper_bound(FileNode->FileName); MEMFS_FILE_NODE_MAP::iterator iter = FileNodeMap->upper_bound(FileNode->FileName);
if (iter == FileNodeMap->end()) for (; FileNodeMap->end() != iter; ++iter)
return FALSE; {
FspPathSuffix(iter->second->FileName, &Remain, &Suffix, Root); #if defined(MEMFS_NAMED_STREAMS)
Result = 0 == MemfsFileNameCompare(Remain, FileNode->FileName); if (0 != wcschr(iter->second->FileName, L':'))
FspPathCombine(iter->second->FileName, Suffix); continue;
#endif
FspPathSuffix(iter->second->FileName, &Remain, &Suffix, Root);
Result = 0 == MemfsFileNameCompare(Remain, FileNode->FileName);
FspPathCombine(iter->second->FileName, Suffix);
break;
}
return Result; return Result;
} }