summaryrefslogtreecommitdiffstats
path: root/lldb/source/API
diff options
context:
space:
mode:
authorLawrence D'Anna <lawrence_danna@apple.com>2019-10-15 17:41:40 +0000
committerLawrence D'Anna <lawrence_danna@apple.com>2019-10-15 17:41:40 +0000
commit30cf609548d9379178ef618d9c8790459221ed22 (patch)
tree858eb178708952d85cc7d9e283350f71c0a1d2f3 /lldb/source/API
parentfdfd6ab12e5e2ad3f6641a3b4442b3140212d29b (diff)
downloadbcm5719-llvm-30cf609548d9379178ef618d9c8790459221ed22.tar.gz
bcm5719-llvm-30cf609548d9379178ef618d9c8790459221ed22.zip
remove FILE* usage from SBStream.i
Summary: This patch removes FILE* and replaces it with SBFile and FileSP the SWIG interface for `SBStream.i`. And this is the last one. With this change, nothing in the python API will can access a FILE* method on the C++ side. Reviewers: JDevlieghere, jasonmolenda, labath Reviewed By: labath Subscribers: lldb-commits Tags: #lldb Differential Revision: https://reviews.llvm.org/D68960 llvm-svn: 374924
Diffstat (limited to 'lldb/source/API')
-rw-r--r--lldb/source/API/SBStream.cpp18
1 files changed, 16 insertions, 2 deletions
diff --git a/lldb/source/API/SBStream.cpp b/lldb/source/API/SBStream.cpp
index e7c726b90cd..d57634d2947 100644
--- a/lldb/source/API/SBStream.cpp
+++ b/lldb/source/API/SBStream.cpp
@@ -9,6 +9,7 @@
#include "lldb/API/SBStream.h"
#include "SBReproducerPrivate.h"
+#include "lldb/API/SBFile.h"
#include "lldb/Core/StreamFile.h"
#include "lldb/Host/FileSystem.h"
#include "lldb/Utility/Status.h"
@@ -108,8 +109,19 @@ void SBStream::RedirectToFile(const char *path, bool append) {
void SBStream::RedirectToFileHandle(FILE *fh, bool transfer_fh_ownership) {
LLDB_RECORD_METHOD(void, SBStream, RedirectToFileHandle, (FILE *, bool), fh,
transfer_fh_ownership);
+ FileSP file = std::make_unique<NativeFile>(fh, transfer_fh_ownership);
+ return RedirectToFile(file);
+}
+
+void SBStream::RedirectToFile(SBFile file) {
+ LLDB_RECORD_METHOD(void, SBStream, RedirectToFile, (SBFile), file)
+ RedirectToFile(file.GetFile());
+}
+
+void SBStream::RedirectToFile(FileSP file_sp) {
+ LLDB_RECORD_METHOD(void, SBStream, RedirectToFile, (FileSP), file_sp);
- if (fh == nullptr)
+ if (!file_sp || !file_sp->IsValid())
return;
std::string local_data;
@@ -120,7 +132,7 @@ void SBStream::RedirectToFileHandle(FILE *fh, bool transfer_fh_ownership) {
local_data = static_cast<StreamString *>(m_opaque_up.get())->GetString();
}
- m_opaque_up = std::make_unique<StreamFile>(fh, transfer_fh_ownership);
+ m_opaque_up = std::make_unique<StreamFile>(file_sp);
m_is_file = true;
// If we had any data locally in our StreamString, then pass that along to
@@ -184,6 +196,8 @@ void RegisterMethods<SBStream>(Registry &R) {
LLDB_REGISTER_METHOD(const char *, SBStream, GetData, ());
LLDB_REGISTER_METHOD(size_t, SBStream, GetSize, ());
LLDB_REGISTER_METHOD(void, SBStream, RedirectToFile, (const char *, bool));
+ LLDB_REGISTER_METHOD(void, SBStream, RedirectToFile, (FileSP));
+ LLDB_REGISTER_METHOD(void, SBStream, RedirectToFile, (SBFile));
LLDB_REGISTER_METHOD(void, SBStream, RedirectToFileHandle, (FILE *, bool));
LLDB_REGISTER_METHOD(void, SBStream, RedirectToFileDescriptor, (int, bool));
LLDB_REGISTER_METHOD(void, SBStream, Clear, ());
OpenPOWER on IntegriCloud