From 837682177679c61c7acfff2d521097f625457d1d Mon Sep 17 00:00:00 2001
From: LFsWang <tnst92002@gmail.com>
Date: Wed, 23 Dec 2015 16:26:38 +0800
Subject: [PATCH] Add missing return values in ForeachDirectoryEntry

ForeachDirectoryEntry is changed by #1256 ,but return value at last line
was missing.
---
 src/common/file_util.cpp | 18 ++++++++++++++----
 1 file 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)