[Lldb-commits] [PATCH] D60152: Fix and simplify PrepareCommandsForSourcing

Adrian McCarthy via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Tue Apr 2 14:15:25 PDT 2019


amccarth created this revision.
amccarth added reviewers: zturner, labath, rnk.

Spotted some problems in the Driver's PrepareCommandsForSourcing while
helping a colleague track another problem.

1. One error case was not handled because there was no else clause.

Fixed by switching to llvm's early-out style instead of nested
`if (succes) { } else { }` cases.  This keeps error handling close
to the actual error.

2. It used `fdopen` on Windows, which is a deprecated name.  In other

places the function used `#ifdef _WIN32` to use the proper names
for Windows and Posix.  For readability and consistency, I factored
these out into small static functions.

3. One call-site failed to call the clean-up function.  I solved this

by simplifying the API.  PrepareCommandsForSourcing no longer requires
the caller to provide a buffer for the pipe's file descriptors and to
call a separate clean-up function later.  PrepareCommandsForSourcing
now ensures the file descriptors are handled before returning.
(The read end of the pipe is held open by the returned FILE * as
before.)

I also eliminated an unnecessary local, shorted the lifetime of another,
and tried to improve the comments.


https://reviews.llvm.org/D60152

Files:
  lldb/tools/driver/Driver.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D60152.193364.patch
Type: text/x-patch
Size: 6285 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20190402/cfdfc0fb/attachment.bin>


More information about the lldb-commits mailing list