Skip to content

Commit b2575da

Browse files
committed
[Reproducer] Add LoadBuffer<> helper (NFC)
Introduce a helper method named LoadBuffer in the Loader to abstract reading a reproducer file from disk. llvm-svn: 375060
1 parent 27ef81c commit b2575da

File tree

2 files changed

+13
-11
lines changed

2 files changed

+13
-11
lines changed

lldb/include/lldb/Utility/Reproducer.h

+9
Original file line numberDiff line numberDiff line change
@@ -302,6 +302,15 @@ class Loader final {
302302
return GetRoot().CopyByAppendingPathComponent(T::file);
303303
}
304304

305+
template <typename T> llvm::Expected<std::string> LoadBuffer() {
306+
FileSpec file = GetFile<typename T::Info>();
307+
llvm::ErrorOr<std::unique_ptr<llvm::MemoryBuffer>> buffer =
308+
llvm::vfs::getRealFileSystem()->getBufferForFile(file.GetPath());
309+
if (!buffer)
310+
return llvm::errorCodeToError(buffer.getError());
311+
return (*buffer)->getBuffer().str();
312+
}
313+
305314
llvm::Error LoadIndex();
306315

307316
const FileSpec &GetRoot() const { return m_root; }

lldb/source/Commands/CommandObjectReproducer.cpp

+4-11
Original file line numberDiff line numberDiff line change
@@ -265,19 +265,12 @@ class CommandObjectReproducerDump : public CommandObjectParsed {
265265
return true;
266266
}
267267
case eReproducerProviderVersion: {
268-
FileSpec version_file = loader->GetFile<VersionProvider::Info>();
269-
270-
// Load the version info into a buffer.
271-
ErrorOr<std::unique_ptr<MemoryBuffer>> buffer =
272-
vfs::getRealFileSystem()->getBufferForFile(version_file.GetPath());
273-
if (!buffer) {
274-
SetError(result, errorCodeToError(buffer.getError()));
268+
Expected<std::string> version = loader->LoadBuffer<VersionProvider>();
269+
if (!version) {
270+
SetError(result, version.takeError());
275271
return false;
276272
}
277-
278-
// Return the version string.
279-
StringRef version = (*buffer)->getBuffer();
280-
result.AppendMessage(version.str());
273+
result.AppendMessage(*version);
281274
result.SetStatus(eReturnStatusSuccessFinishResult);
282275
return true;
283276
}

0 commit comments

Comments
 (0)