HomePhabricator

IOHandler: fall back on File::Read if a FILE* isn't available.

Authored by lawrence_danna on Oct 11 2019, 10:43 AM.

Description

IOHandler: fall back on File::Read if a FILE* isn't available.

Summary:
IOHandler needs to read lines of input from a lldb::File.
The way it currently does this using, FILE*, which is something
we want to avoid now. I'd prefer to just replace the FILE* code
with calls to File::Read, but it contains an awkward and
delicate workaround specific to ctrl-C handling on windows, and
it's not clear if or how that workaround would translate to
lldb::File.

So in this patch, we use use the FILE* if it's available, and only
fall back on File::Read if that's the only option.

I think this is a reasonable approach here for two reasons. First
is that interactive terminal support is the one area where FILE*
can't be avoided. We need them for libedit and curses anyway,
and using them here as well is consistent with that pattern.

The second reason is that the comments express a hope that the
underlying windows bug that's being worked around will be fixed one
day, so hopefully when that happens, that whole path can be deleted.

Reviewers: JDevlieghere, jasonmolenda, labath, lanza

Reviewed By: labath

Subscribers: lldb-commits

Tags: #lldb

Differential Revision: https://reviews.llvm.org/D68622

llvm-svn: 374576

Details

Committed
lawrence_dannaOct 11 2019, 10:43 AM
Reviewer
labath
Differential Revision
D68622: IOHandler: fall back on File::Read if a FILE* isn't available.
Parents
rGe695d3c69565: gn build: (manually) merge r374110
Branches
Unknown
Tags
Unknown