[Lldb-commits] [PATCH] D67996: Convert FileSystem::Open() to return Expected<FileUP>

Lawrence D'Anna via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Wed Sep 25 17:02:19 PDT 2019

lawrence_danna marked 2 inline comments as done.
lawrence_danna added inline comments.

Comment at: lldb/include/lldb/Core/StreamFile.h:48-53
+  void SetFile(std::shared_ptr<File> file) {
+    if (file)
+      m_file_sp = file;
+    else
+      m_file_sp = std::make_shared<File>();
+  }
labath wrote:
> Could we remove this method? It would make things easier to reason about if we could disallow swapping of a File object backing a stream midway through its lifetime. Looking at the existing callers, it does not seem it should be hard to do that -- this is always called immediately after a stream is constructed via patterns like:
> ```
> auto *stream = new StreamFile();
> auto file = create_a_file();
> if (file.is_ok()) {
>   stream->SetFile(file);
>   use(stream);
> }
> ```
> It should be easy to change that so that the stream is constructed only after we have a valid File object. It would also avoid the need to construct a fake File object just to guarantee it is always initialized.
Yea, it wasn't' too complicated to get rid of it.

  rG LLVM Github Monorepo



More information about the lldb-commits mailing list