Skip to content

Commit

Permalink
Remove FileSystem::MakeDirectory.
Browse files Browse the repository at this point in the history
Have callers use llvm::sys::fs::create_directory() instead.

Differential Revision: https://reviews.llvm.org/D31086

llvm-svn: 298203
  • Loading branch information
Zachary Turner committed Mar 19, 2017
1 parent c8c9f97 commit d3d95fd
Show file tree
Hide file tree
Showing 10 changed files with 9 additions and 70 deletions.
2 changes: 0 additions & 2 deletions lldb/include/lldb/Host/FileSystem.h
Expand Up @@ -28,8 +28,6 @@ class FileSystem {

static FileSpec::PathSyntax GetNativePathSyntax();

static Error MakeDirectory(const FileSpec &file_spec, uint32_t mode);

static Error GetFilePermissions(const FileSpec &file_spec,
uint32_t &file_permissions);
static Error SetFilePermissions(const FileSpec &file_spec,
Expand Down
6 changes: 2 additions & 4 deletions lldb/source/Host/common/Editline.cpp
Expand Up @@ -15,13 +15,13 @@
#include "lldb/Host/ConnectionFileDescriptor.h"
#include "lldb/Host/Editline.h"
#include "lldb/Host/FileSpec.h"
#include "lldb/Host/FileSystem.h"
#include "lldb/Host/Host.h"
#include "lldb/Utility/Error.h"
#include "lldb/Utility/LLDBAssert.h"
#include "lldb/Utility/SelectHelper.h"
#include "lldb/Utility/StreamString.h"

#include "llvm/Support/FileSystem.h"
#include "llvm/Support/Threading.h"

using namespace lldb_private;
Expand Down Expand Up @@ -178,9 +178,7 @@ class EditlineHistory {
if (m_path.empty() && m_history && !m_prefix.empty()) {
FileSpec parent_path{"~/.lldb", true};
char history_path[PATH_MAX];
if (FileSystem::MakeDirectory(parent_path,
lldb::eFilePermissionsDirectoryDefault)
.Success()) {
if (!llvm::sys::fs::create_directory(parent_path.GetPath()) {
snprintf(history_path, sizeof(history_path), "~/.lldb/%s-history",
m_prefix.c_str());
} else {
Expand Down
8 changes: 2 additions & 6 deletions lldb/source/Host/common/HostInfoBase.cpp
Expand Up @@ -314,9 +314,7 @@ bool HostInfoBase::ComputeProcessTempFileDirectory(FileSpec &file_spec) {

std::string pid_str{llvm::to_string(Host::GetCurrentProcessID())};
temp_file_spec.AppendPathComponent(pid_str);
if (!FileSystem::MakeDirectory(temp_file_spec,
eFilePermissionsDirectoryDefault)
.Success())
if (llvm::sys::fs::create_directory(temp_file_spec.GetPath()))
return false;

file_spec.GetDirectory().SetCString(temp_file_spec.GetCString());
Expand All @@ -338,9 +336,7 @@ bool HostInfoBase::ComputeGlobalTempFileDirectory(FileSpec &file_spec) {
return false;

temp_file_spec.AppendPathComponent("lldb");
if (!FileSystem::MakeDirectory(temp_file_spec,
eFilePermissionsDirectoryDefault)
.Success())
if (llvm::sys::fs::create_directory(temp_file_spec.GetPath()))
return false;

file_spec.GetDirectory().SetCString(temp_file_spec.GetCString());
Expand Down
33 changes: 0 additions & 33 deletions lldb/source/Host/posix/FileSystem.cpp
Expand Up @@ -40,39 +40,6 @@ FileSpec::PathSyntax FileSystem::GetNativePathSyntax() {
return FileSpec::ePathSyntaxPosix;
}

Error FileSystem::MakeDirectory(const FileSpec &file_spec,
uint32_t file_permissions) {
if (file_spec) {
Error error;
if (::mkdir(file_spec.GetCString(), file_permissions) == -1) {
error.SetErrorToErrno();
errno = 0;
switch (error.GetError()) {
case ENOENT: {
// Parent directory doesn't exist, so lets make it if we can
// Make the parent directory and try again
FileSpec parent_file_spec{file_spec.GetDirectory().GetCString(), false};
error = MakeDirectory(parent_file_spec, file_permissions);
if (error.Fail())
return error;
// Try and make the directory again now that the parent directory was
// made successfully
if (::mkdir(file_spec.GetCString(), file_permissions) == -1) {
error.SetErrorToErrno();
}
return error;
} break;
case EEXIST: {
if (llvm::sys::fs::is_directory(file_spec.GetPath()))
return Error(); // It is a directory and it already exists
} break;
}
}
return error;
}
return Error("empty path");
}

Error FileSystem::GetFilePermissions(const FileSpec &file_spec,
uint32_t &file_permissions) {
Error error;
Expand Down
15 changes: 0 additions & 15 deletions lldb/source/Host/windows/FileSystem.cpp
Expand Up @@ -30,21 +30,6 @@ FileSpec::PathSyntax FileSystem::GetNativePathSyntax() {
return FileSpec::ePathSyntaxWindows;
}

Error FileSystem::MakeDirectory(const FileSpec &file_spec,
uint32_t file_permissions) {
// On Win32, the mode parameter is ignored, as Windows files and directories
// support a
// different permission model than POSIX.
Error error;
const auto err_code =
llvm::sys::fs::create_directories(file_spec.GetPath(), true);
if (err_code) {
error.SetErrorString(err_code.message().c_str());
}

return error;
}

Error FileSystem::GetFilePermissions(const FileSpec &file_spec,
uint32_t &file_permissions) {
Error error;
Expand Down
3 changes: 1 addition & 2 deletions lldb/source/Plugins/Platform/MacOSX/PlatformDarwin.cpp
Expand Up @@ -225,8 +225,7 @@ static lldb_private::Error
MakeCacheFolderForFile(const FileSpec &module_cache_spec) {
FileSpec module_cache_folder =
module_cache_spec.CopyByRemovingLastPathComponent();
return FileSystem::MakeDirectory(module_cache_folder,
eFilePermissionsDirectoryDefault);
return llvm::sys::fs::create_directory(module_cache_folder.GetPath());
}

static lldb_private::Error
Expand Down
4 changes: 1 addition & 3 deletions lldb/source/Plugins/Platform/MacOSX/PlatformMacOSX.cpp
Expand Up @@ -22,7 +22,6 @@
#include "lldb/Core/ModuleSpec.h"
#include "lldb/Core/PluginManager.h"
#include "lldb/Host/FileSpec.h"
#include "lldb/Host/FileSystem.h"
#include "lldb/Host/Host.h"
#include "lldb/Host/HostInfo.h"
#include "lldb/Symbol/ObjectFile.h"
Expand Down Expand Up @@ -279,8 +278,7 @@ PlatformMacOSX::GetFileWithUUID(const lldb_private::FileSpec &platform_file,
FileSpec module_cache_folder =
module_cache_spec.CopyByRemovingLastPathComponent();
// try to make the local directory first
Error err = FileSystem::MakeDirectory(module_cache_folder,
eFilePermissionsDirectoryDefault);
Error err(llvm::sys::fs::create_directory(module_cache_folder.GetPath()));
if (err.Fail())
return err;
err = GetFile(platform_file, module_cache_spec);
Expand Down
Expand Up @@ -794,7 +794,7 @@ GDBRemoteCommunicationServerCommon::Handle_qPlatform_mkdir(
if (packet.GetChar() == ',') {
std::string path;
packet.GetHexByteString(path);
Error error = FileSystem::MakeDirectory(FileSpec{path, false}, mode);
Error error(llvm::sys::fs::create_directory(path, mode));

StreamGDBRemote response;
response.Printf("F%u", error.GetError());
Expand Down
2 changes: 1 addition & 1 deletion lldb/source/Target/Platform.cpp
Expand Up @@ -761,7 +761,7 @@ bool Platform::SetWorkingDirectory(const FileSpec &file_spec) {

Error Platform::MakeDirectory(const FileSpec &file_spec, uint32_t permissions) {
if (IsHost())
return FileSystem::MakeDirectory(file_spec, permissions);
return llvm::sys::fs::create_directory(file_spec.GetPath(), permissions);
else {
Error error;
error.SetErrorStringWithFormat("remote platform %s doesn't support %s",
Expand Down
4 changes: 1 addition & 3 deletions lldb/tools/lldb-server/lldb-platform.cpp
Expand Up @@ -32,7 +32,6 @@
#include "Plugins/Process/gdb-remote/ProcessGDBRemoteLog.h"
#include "lldb/Host/ConnectionFileDescriptor.h"
#include "lldb/Host/FileSpec.h"
#include "lldb/Host/FileSystem.h"
#include "lldb/Host/HostGetOpt.h"
#include "lldb/Host/OptionParser.h"
#include "lldb/Host/common/TCPSocket.h"
Expand Down Expand Up @@ -102,8 +101,7 @@ static void display_usage(const char *progname, const char *subcommand) {
static Error save_socket_id_to_file(const std::string &socket_id,
const FileSpec &file_spec) {
FileSpec temp_file_spec(file_spec.GetDirectory().AsCString(), false);
auto error = FileSystem::MakeDirectory(temp_file_spec,
eFilePermissionsDirectoryDefault);
Error error(llvm::sys::fs::create_directory(temp_file_spec.GetPath()));
if (error.Fail())
return Error("Failed to create directory %s: %s",
temp_file_spec.GetCString(), error.AsCString());
Expand Down

0 comments on commit d3d95fd

Please sign in to comment.