File tree Expand file tree Collapse file tree 2 files changed +13
-11
lines changed
Expand file tree Collapse file tree 2 files changed +13
-11
lines changed Original file line number Diff line number Diff 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; }
Original file line number Diff line number Diff 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 }
You can’t perform that action at this time.
0 commit comments