diff options
author | bunnei <bunneidev@gmail.com> | 2015-12-27 22:18:43 +0100 |
---|---|---|
committer | bunnei <bunneidev@gmail.com> | 2015-12-27 22:18:43 +0100 |
commit | 40599c24eada83d5c8a3defba4fc409dcd994a7e (patch) | |
tree | 9f01bab7ba96db23475abb738d8e3648ec642b79 | |
parent | Merge pull request #1287 from lioncash/memory (diff) | |
parent | Add missing return values in ForeachDirectoryEntry (diff) | |
download | yuzu-40599c24eada83d5c8a3defba4fc409dcd994a7e.tar yuzu-40599c24eada83d5c8a3defba4fc409dcd994a7e.tar.gz yuzu-40599c24eada83d5c8a3defba4fc409dcd994a7e.tar.bz2 yuzu-40599c24eada83d5c8a3defba4fc409dcd994a7e.tar.lz yuzu-40599c24eada83d5c8a3defba4fc409dcd994a7e.tar.xz yuzu-40599c24eada83d5c8a3defba4fc409dcd994a7e.tar.zst yuzu-40599c24eada83d5c8a3defba4fc409dcd994a7e.zip |
-rw-r--r-- | src/common/file_util.cpp | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/src/common/file_util.cpp b/src/common/file_util.cpp index 4c7113390..052c0ecd6 100644 --- a/src/common/file_util.cpp +++ b/src/common/file_util.cpp @@ -427,6 +427,9 @@ bool ForeachDirectoryEntry(unsigned* num_entries_out, const std::string &directo // How many files + directories we found unsigned found_entries = 0; + // Save the status of callback function + bool callback_error = false; + #ifdef _WIN32 // Find the first file in the directory. WIN32_FIND_DATA ffd; @@ -455,8 +458,10 @@ bool ForeachDirectoryEntry(unsigned* num_entries_out, const std::string &directo continue; unsigned ret_entries; - if (!callback(&ret_entries, directory, virtual_name)) + if (!callback(&ret_entries, directory, virtual_name)) { + callback_error = true; break; + } found_entries += ret_entries; #ifdef _WIN32 @@ -467,9 +472,14 @@ bool ForeachDirectoryEntry(unsigned* num_entries_out, const std::string &directo closedir(dirp); #endif - // num_entries_out is allowed to be specified nullptr, in which case we shouldn't try to set it - if (num_entries_out != nullptr) - *num_entries_out = found_entries; + if (!callback_error) { + // num_entries_out is allowed to be specified nullptr, in which case we shouldn't try to set it + if (num_entries_out != nullptr) + *num_entries_out = found_entries; + return true; + } else { + return false; + } } unsigned ScanDirectoryTree(const std::string &directory, FSTEntry& parent_entry) |