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

Unified Diff: runtime/bin/file_linux.cc

Issue 2599723002: Revert "Make File.create() fail when a directory exists at the same path" (Closed)
Patch Set: Created 4 years 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/file_fuchsia.cc ('k') | runtime/bin/file_macos.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/bin/file_linux.cc
diff --git a/runtime/bin/file_linux.cc b/runtime/bin/file_linux.cc
index 6664c67956c4d6bfb986d327a26111fcf8066386..9a6dc410f2157590cf84f837f9879e532b27e46e 100644
--- a/runtime/bin/file_linux.cc
+++ b/runtime/bin/file_linux.cc
@@ -17,7 +17,6 @@
#include <unistd.h> // NOLINT
#include "bin/builtin.h"
-#include "bin/fdutils.h"
#include "bin/log.h"
#include "platform/signal_blocker.h"
#include "platform/utils.h"
@@ -228,8 +227,7 @@ File* File::OpenStdio(int fd) {
bool File::Exists(const char* name) {
struct stat64 st;
if (TEMP_FAILURE_RETRY(stat64(name, &st)) == 0) {
- // Everything but a directory and a link is a file to Dart.
- return !S_ISDIR(st.st_mode) && !S_ISLNK(st.st_mode);
+ return S_ISREG(st.st_mode);
} else {
return false;
}
@@ -242,22 +240,7 @@ bool File::Create(const char* name) {
if (fd < 0) {
return false;
}
- // File.create returns a File, so we shouldn't be giving the illusion that the
- // call has created a file or that a file already exists if there is already
- // an entity at the same path that is a directory or a link.
- bool is_file = true;
- struct stat64 st;
- if (TEMP_FAILURE_RETRY(fstat64(fd, &st)) == 0) {
- if (S_ISDIR(st.st_mode)) {
- errno = EISDIR;
- is_file = false;
- } else if (S_ISLNK(st.st_mode)) {
- errno = ENOENT;
- is_file = false;
- }
- }
- FDUtils::SaveErrorAndClose(fd);
- return is_file;
+ return (TEMP_FAILURE_RETRY(close(fd)) == 0);
}
« no previous file with comments | « runtime/bin/file_fuchsia.cc ('k') | runtime/bin/file_macos.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698