Use LLVM for all stat-related functionality.
This deletes LLDB's FileType enumeration and replaces all users, and all calls to functions that check whether a file exists etc with corresponding calls to LLVM. Differential Revision: https://reviews.llvm.org/D30624 llvm-svn: 297116
This commit is contained in:
@@ -51,6 +51,7 @@
|
||||
|
||||
#include "llvm/ADT/STLExtras.h"
|
||||
#include "llvm/ADT/StringRef.h"
|
||||
#include "llvm/Support/FileSystem.h"
|
||||
|
||||
using namespace lldb;
|
||||
using namespace lldb_private;
|
||||
@@ -2575,9 +2576,13 @@ bool ScriptInterpreterPython::LoadScriptingModule(
|
||||
Locker::NoSTDIN,
|
||||
Locker::FreeAcquiredLock |
|
||||
(init_session ? Locker::TearDownSession : 0));
|
||||
namespace fs = llvm::sys::fs;
|
||||
fs::file_status st;
|
||||
std::error_code ec = status(target_file.GetPath(), st);
|
||||
|
||||
if (target_file.GetFileType() == FileSpec::eFileTypeInvalid ||
|
||||
target_file.GetFileType() == FileSpec::eFileTypeUnknown) {
|
||||
if (ec || st.type() == fs::file_type::status_error ||
|
||||
st.type() == fs::file_type::type_unknown ||
|
||||
st.type() == fs::file_type::file_not_found) {
|
||||
// if not a valid file of any sort, check if it might be a filename still
|
||||
// dot can't be used but / and \ can, and if either is found, reject
|
||||
if (strchr(pathname, '\\') || strchr(pathname, '/')) {
|
||||
@@ -2586,9 +2591,8 @@ bool ScriptInterpreterPython::LoadScriptingModule(
|
||||
}
|
||||
basename = pathname; // not a filename, probably a package of some sort,
|
||||
// let it go through
|
||||
} else if (target_file.GetFileType() == FileSpec::eFileTypeDirectory ||
|
||||
target_file.GetFileType() == FileSpec::eFileTypeRegular ||
|
||||
target_file.GetFileType() == FileSpec::eFileTypeSymbolicLink) {
|
||||
} else if (is_directory(st) || fs::is_regular_file(st) ||
|
||||
st.type() == fs::file_type::symlink_file) {
|
||||
std::string directory = target_file.GetDirectory().GetCString();
|
||||
replace_all(directory, "\\", "\\\\");
|
||||
replace_all(directory, "'", "\\'");
|
||||
|
||||
Reference in New Issue
Block a user