Author: Alex Langford Date: 2023-05-02T17:20:29-07:00 New Revision: 50e79d725c105344e292d1fe8044a69467c20346
URL: https://github.com/llvm/llvm-project/commit/50e79d725c105344e292d1fe8044a69467c20346 DIFF: https://github.com/llvm/llvm-project/commit/50e79d725c105344e292d1fe8044a69467c20346.diff LOG: [lldb] Minor cleanups at callsites of FileSpec::GetFileNameExtension FileSpec::GetFileNameExtension returns a StringRef. In some cases we are calling it and then storing the result in a local. To prevent cases where we store the StringRef, mutate the Filespec, and then try to use the stored StringRef afterwards, I've audited the callsites and made adjustments to mitigate: Either marking the FileSpec it comes from as const (to avoid mutations) or by not storing the StringRef in a local if it makes sense not to. Differential Revision: https://reviews.llvm.org/D149671 Added: Modified: lldb/source/Commands/CommandObjectTarget.cpp lldb/source/Plugins/Platform/MacOSX/PlatformDarwinKernel.cpp lldb/source/Plugins/Platform/MacOSX/PlatformDarwinKernel.h lldb/source/Plugins/ScriptInterpreter/Lua/Lua.cpp Removed: ################################################################################ diff --git a/lldb/source/Commands/CommandObjectTarget.cpp b/lldb/source/Commands/CommandObjectTarget.cpp index 6d63b306d42a1..0a1cacfaf7509 100644 --- a/lldb/source/Commands/CommandObjectTarget.cpp +++ b/lldb/source/Commands/CommandObjectTarget.cpp @@ -2161,7 +2161,7 @@ class CommandObjectTargetModulesDumpClangPCMInfo : public CommandObjectParsed { } const char *pcm_path = command.GetArgumentAtIndex(0); - FileSpec pcm_file{pcm_path}; + const FileSpec pcm_file{pcm_path}; if (pcm_file.GetFileNameExtension() != ".pcm") { result.AppendError("file must have a .pcm extension"); diff --git a/lldb/source/Plugins/Platform/MacOSX/PlatformDarwinKernel.cpp b/lldb/source/Plugins/Platform/MacOSX/PlatformDarwinKernel.cpp index 1a9229d76f439..a50d35b7d40ab 100644 --- a/lldb/source/Plugins/Platform/MacOSX/PlatformDarwinKernel.cpp +++ b/lldb/source/Plugins/Platform/MacOSX/PlatformDarwinKernel.cpp @@ -421,7 +421,7 @@ PlatformDarwinKernel::FindKDKandSDKDirectoriesInDirectory( static constexpr llvm::StringLiteral g_kdk_suffix = ".kdk"; PlatformDarwinKernel *thisp = (PlatformDarwinKernel *)baton; - FileSpec file_spec(path); + const FileSpec file_spec(path); if (ft == llvm::sys::fs::file_type::directory_file && (file_spec.GetFileNameExtension() == g_sdk_suffix || file_spec.GetFileNameExtension() == g_kdk_suffix)) { @@ -482,7 +482,7 @@ PlatformDarwinKernel::GetKernelsAndKextsInDirectoryHelper( static constexpr llvm::StringLiteral g_kext_suffix = ".kext"; static constexpr llvm::StringLiteral g_dsym_suffix = ".dSYM"; - FileSpec file_spec(path); + const FileSpec file_spec(path); llvm::StringRef file_spec_extension = file_spec.GetFileNameExtension(); Log *log = GetLog(LLDBLog::Platform); @@ -691,7 +691,7 @@ bool PlatformDarwinKernel::KerneldSYMHasNoSiblingBinary( // it should iterate over every binary in the DWARF subdir // and return them all. std::vector<FileSpec> -PlatformDarwinKernel::GetDWARFBinaryInDSYMBundle(FileSpec dsym_bundle) { +PlatformDarwinKernel::GetDWARFBinaryInDSYMBundle(const FileSpec &dsym_bundle) { std::vector<FileSpec> results; static constexpr llvm::StringLiteral g_dsym_suffix = ".dSYM"; if (dsym_bundle.GetFileNameExtension() != g_dsym_suffix) { diff --git a/lldb/source/Plugins/Platform/MacOSX/PlatformDarwinKernel.h b/lldb/source/Plugins/Platform/MacOSX/PlatformDarwinKernel.h index 1b0708cd9f8dc..e28f77cd44d55 100644 --- a/lldb/source/Plugins/Platform/MacOSX/PlatformDarwinKernel.h +++ b/lldb/source/Plugins/Platform/MacOSX/PlatformDarwinKernel.h @@ -137,7 +137,8 @@ class PlatformDarwinKernel : public PlatformDarwin { // with the binary inside it ('.../foo.dSYM/Contents/Resources/DWARF/foo'). // A dSYM bundle may have multiple DWARF binaries in them, so a vector // of matches is returned. - static std::vector<FileSpec> GetDWARFBinaryInDSYMBundle(FileSpec dsym_bundle); + static std::vector<FileSpec> + GetDWARFBinaryInDSYMBundle(const FileSpec &dsym_bundle); Status GetSharedModuleKext(const ModuleSpec &module_spec, Process *process, lldb::ModuleSP &module_sp, diff --git a/lldb/source/Plugins/ScriptInterpreter/Lua/Lua.cpp b/lldb/source/Plugins/ScriptInterpreter/Lua/Lua.cpp index 852bb3bb14c6c..9c2227cc3884e 100644 --- a/lldb/source/Plugins/ScriptInterpreter/Lua/Lua.cpp +++ b/lldb/source/Plugins/ScriptInterpreter/Lua/Lua.cpp @@ -131,14 +131,13 @@ llvm::Error Lua::CheckSyntax(llvm::StringRef buffer) { } llvm::Error Lua::LoadModule(llvm::StringRef filename) { - FileSpec file(filename); + const FileSpec file(filename); if (!FileSystem::Instance().Exists(file)) { return llvm::make_error<llvm::StringError>("invalid path", llvm::inconvertibleErrorCode()); } - llvm::StringRef module_extension = file.GetFileNameExtension(); - if (module_extension != ".lua") { + if (file.GetFileNameExtension() != ".lua") { return llvm::make_error<llvm::StringError>("invalid extension", llvm::inconvertibleErrorCode()); } _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits