Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(132)

Unified Diff: runtime/bin/directory_posix.cc

Issue 9773018: Add error handling to directory (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Addressed review comments Created 8 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « runtime/bin/directory_impl.dart ('k') | runtime/bin/directory_win.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/bin/directory_posix.cc
diff --git a/runtime/bin/directory_posix.cc b/runtime/bin/directory_posix.cc
index 042994340ca688ff26189f3dde4eacd2acf7389a..d77f7c89d7669ced275ecdbc4c87304b40f27cb3 100644
--- a/runtime/bin/directory_posix.cc
+++ b/runtime/bin/directory_posix.cc
@@ -93,25 +93,8 @@ static bool HandleFile(char* file_name,
static void PostError(DirectoryListing *listing,
- const char* prefix,
- const char* suffix,
- int error_code) {
- // TODO(sgjesse): Pass flags to indicate whether error response is
- // needed.
- char* error_str = Platform::StrError(error_code);
- int error_message_size =
- strlen(prefix) + strlen(suffix) + strlen(error_str) + 3;
- char* message = static_cast<char*>(malloc(error_message_size + 1));
- int written = snprintf(message,
- error_message_size + 1,
- "%s%s (%s)",
- prefix,
- suffix,
- error_str);
- ASSERT(written == error_message_size);
- free(error_str);
- listing->HandleError(message);
- free(message);
+ const char* dir_name) {
+ listing->HandleError(dir_name);
}
@@ -123,7 +106,7 @@ static bool ListRecursively(const char* dir_name,
dir_pointer = opendir(dir_name);
} while (dir_pointer == NULL && errno == EINTR);
if (dir_pointer == NULL) {
- PostError(listing, "Directory listing failed for: ", dir_name, errno);
+ PostError(listing, dir_name);
return false;
}
@@ -138,7 +121,7 @@ static bool ListRecursively(const char* dir_name,
bool valid = ComputeFullPath(dir_name, path, &path_length);
if (!valid) {
free(path);
- PostError(listing, "Directory listing failed for: ", dir_name, errno);
+ PostError(listing, dir_name);
return false;
}
@@ -183,7 +166,7 @@ static bool ListRecursively(const char* dir_name,
int lstat_success = TEMP_FAILURE_RETRY(lstat(path, &entry_info));
if (lstat_success == -1) {
success = false;
- PostError(listing, "Directory listing failed for: ", path, errno);
+ PostError(listing, path);
break;
}
if ((entry_info.st_mode & S_IFMT) == S_IFDIR) {
@@ -206,12 +189,14 @@ static bool ListRecursively(const char* dir_name,
}
if (read != 0) {
+ errno = read;
success = false;
- PostError(listing, "Directory listing failed", "", read);
+ PostError(listing, dir_name);
}
if (closedir(dir_pointer) == -1) {
- PostError(listing, "Failed to close directory", "", errno);
+ success = false;
+ PostError(listing, dir_name);
}
free(path);
« no previous file with comments | « runtime/bin/directory_impl.dart ('k') | runtime/bin/directory_win.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698