From 226993eecee22e3cb39fc30aedfef587cc58330c Mon Sep 17 00:00:00 2001 From: Tannin Date: Mon, 1 Dec 2014 18:44:37 +0100 Subject: - added error handling when a file can't be deleted from vfs - minor bugfixes --- src/shared/directoryentry.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'src/shared/directoryentry.cpp') diff --git a/src/shared/directoryentry.cpp b/src/shared/directoryentry.cpp index 0adf0812..7c0e7119 100644 --- a/src/shared/directoryentry.cpp +++ b/src/shared/directoryentry.cpp @@ -563,17 +563,19 @@ void DirectoryEntry::addFiles(FilesOrigin &origin, BSA::Folder::Ptr archiveFolde } -void DirectoryEntry::removeFile(const std::wstring &filePath, int *origin) +bool DirectoryEntry::removeFile(const std::wstring &filePath, int *origin) { size_t pos = filePath.find_first_of(L"\\/"); if (pos == std::string::npos) { - this->remove(filePath, origin); + return this->remove(filePath, origin); } else { std::wstring dirName = filePath.substr(0, pos); std::wstring rest = filePath.substr(pos + 1); DirectoryEntry *entry = getSubDirectoryRecursive(dirName, false); if (entry != NULL) { - entry->removeFile(rest, origin); + return entry->removeFile(rest, origin); + } else { + return false; } } } @@ -894,14 +896,16 @@ void FileRegister::unregisterFile(FileEntry::Ptr file) } -void FileRegister::removeFile(FileEntry::Index index) +bool FileRegister::removeFile(FileEntry::Index index) { auto iter = m_Files.find(index); if (iter != m_Files.end()) { unregisterFile(iter->second); m_Files.erase(index); + return true; } else { log("invalid file index for remove: %lu", index); + return false; } } -- cgit v1.3.1