clayborg added a comment.

In https://reviews.llvm.org/D38829#914300, @zturner wrote:

> Ok, I wasn't aware of the libedit problem.
>
> I still don't like this approach, because it causes the design of the `File` 
> class to be influenced by a limitation of a 3rd party library.
>
> What about adding a method to `IOObject` called `FILE *GetFileStream()`.  
> Then the method I proposed earlier would just involve `PythonFileIo` 
> implementing this in the proper way.  Then we can pass `SBFile` or 
> `lldb_private::File` through all layers of the codebase, and once we're in 
> libedit we just call `file.GetFileStream()` and pass it to libedit?


That could work. If we don't get a "FILE *" back from IOObject::GetFileStream() 
we need to fall back onto a simple implementation. The current IOHandler will 
fall back to fgets() on a FILE*, but we can easily make it just call a method 
on IOObject. Probably would be best to add a fgets() type call to IOObject so 
the underlying implementation can do this as efficiently as possible.

I mainly care that the current API continues to work with "FILE *" at least on 
all Unix based platforms. We can add new APIs, but we must leave the existing 
ones there.


Repository:
  rL LLVM

https://reviews.llvm.org/D38829



_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to