File tree 2 files changed +13
-11
lines changed
2 files changed +13
-11
lines changed Original file line number Diff line number Diff line change @@ -302,6 +302,15 @@ class Loader final {
302
302
return GetRoot ().CopyByAppendingPathComponent (T::file);
303
303
}
304
304
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
+
305
314
llvm::Error LoadIndex ();
306
315
307
316
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 {
265
265
return true ;
266
266
}
267
267
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 ());
275
271
return false ;
276
272
}
277
-
278
- // Return the version string.
279
- StringRef version = (*buffer)->getBuffer ();
280
- result.AppendMessage (version.str ());
273
+ result.AppendMessage (*version);
281
274
result.SetStatus (eReturnStatusSuccessFinishResult);
282
275
return true ;
283
276
}
You can’t perform that action at this time.
0 commit comments