SBFile support in SBCommandReturnObject
Summary: This patch add SBFile interfaces to SBCommandReturnObject, and removes the internal callers of its FILE* interfaces. Reviewers: JDevlieghere, jasonmolenda, labath Reviewed By: JDevlieghere Subscribers: lldb-commits Tags: #lldb Differential Revision: https://reviews.llvm.org/D68434 llvm-svn: 374238
This commit is contained in:
@@ -10,6 +10,7 @@
|
||||
#include "SBReproducerPrivate.h"
|
||||
#include "Utils.h"
|
||||
#include "lldb/API/SBError.h"
|
||||
#include "lldb/API/SBFile.h"
|
||||
#include "lldb/API/SBStream.h"
|
||||
#include "lldb/Interpreter/CommandReturnObject.h"
|
||||
#include "lldb/Utility/ConstString.h"
|
||||
@@ -116,7 +117,6 @@ size_t SBCommandReturnObject::GetErrorSize() {
|
||||
|
||||
size_t SBCommandReturnObject::PutOutput(FILE *fh) {
|
||||
LLDB_RECORD_METHOD(size_t, SBCommandReturnObject, PutOutput, (FILE *), fh);
|
||||
|
||||
if (fh) {
|
||||
size_t num_bytes = GetOutputSize();
|
||||
if (num_bytes)
|
||||
@@ -125,6 +125,21 @@ size_t SBCommandReturnObject::PutOutput(FILE *fh) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
size_t SBCommandReturnObject::PutOutput(FileSP file_sp) {
|
||||
LLDB_RECORD_METHOD(size_t, SBCommandReturnObject, PutOutput, (FileSP),
|
||||
file_sp);
|
||||
if (!file_sp)
|
||||
return 0;
|
||||
return file_sp->Printf("%s", GetOutput());
|
||||
}
|
||||
|
||||
size_t SBCommandReturnObject::PutOutput(SBFile file) {
|
||||
LLDB_RECORD_METHOD(size_t, SBCommandReturnObject, PutOutput, (SBFile), file);
|
||||
if (!file.m_opaque_sp)
|
||||
return 0;
|
||||
return file.m_opaque_sp->Printf("%s", GetOutput());
|
||||
}
|
||||
|
||||
size_t SBCommandReturnObject::PutError(FILE *fh) {
|
||||
LLDB_RECORD_METHOD(size_t, SBCommandReturnObject, PutError, (FILE *), fh);
|
||||
|
||||
@@ -136,6 +151,21 @@ size_t SBCommandReturnObject::PutError(FILE *fh) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
size_t SBCommandReturnObject::PutError(FileSP file_sp) {
|
||||
LLDB_RECORD_METHOD(size_t, SBCommandReturnObject, PutError, (FileSP),
|
||||
file_sp);
|
||||
if (!file_sp)
|
||||
return 0;
|
||||
return file_sp->Printf("%s", GetError());
|
||||
}
|
||||
|
||||
size_t SBCommandReturnObject::PutError(SBFile file) {
|
||||
LLDB_RECORD_METHOD(size_t, SBCommandReturnObject, PutError, (SBFile), file);
|
||||
if (!file.m_opaque_sp)
|
||||
return 0;
|
||||
return file.m_opaque_sp->Printf("%s", GetError());
|
||||
}
|
||||
|
||||
void SBCommandReturnObject::Clear() {
|
||||
LLDB_RECORD_METHOD_NO_ARGS(void, SBCommandReturnObject, Clear);
|
||||
|
||||
@@ -242,16 +272,40 @@ void SBCommandReturnObject::SetImmediateOutputFile(FILE *fh,
|
||||
bool transfer_ownership) {
|
||||
LLDB_RECORD_METHOD(void, SBCommandReturnObject, SetImmediateOutputFile,
|
||||
(FILE *, bool), fh, transfer_ownership);
|
||||
|
||||
ref().SetImmediateOutputFile(fh, transfer_ownership);
|
||||
FileSP file = std::make_shared<NativeFile>(fh, transfer_ownership);
|
||||
ref().SetImmediateOutputFile(file);
|
||||
}
|
||||
|
||||
void SBCommandReturnObject::SetImmediateErrorFile(FILE *fh,
|
||||
bool transfer_ownership) {
|
||||
LLDB_RECORD_METHOD(void, SBCommandReturnObject, SetImmediateErrorFile,
|
||||
(FILE *, bool), fh, transfer_ownership);
|
||||
FileSP file = std::make_shared<NativeFile>(fh, transfer_ownership);
|
||||
ref().SetImmediateErrorFile(file);
|
||||
}
|
||||
|
||||
ref().SetImmediateErrorFile(fh, transfer_ownership);
|
||||
void SBCommandReturnObject::SetImmediateOutputFile(SBFile file) {
|
||||
LLDB_RECORD_METHOD(void, SBCommandReturnObject, SetImmediateOutputFile,
|
||||
(SBFile), file);
|
||||
ref().SetImmediateOutputFile(file.m_opaque_sp);
|
||||
}
|
||||
|
||||
void SBCommandReturnObject::SetImmediateErrorFile(SBFile file) {
|
||||
LLDB_RECORD_METHOD(void, SBCommandReturnObject, SetImmediateErrorFile,
|
||||
(SBFile), file);
|
||||
ref().SetImmediateErrorFile(file.m_opaque_sp);
|
||||
}
|
||||
|
||||
void SBCommandReturnObject::SetImmediateOutputFile(FileSP file_sp) {
|
||||
LLDB_RECORD_METHOD(void, SBCommandReturnObject, SetImmediateOutputFile,
|
||||
(FileSP), file_sp);
|
||||
SetImmediateOutputFile(SBFile(file_sp));
|
||||
}
|
||||
|
||||
void SBCommandReturnObject::SetImmediateErrorFile(FileSP file_sp) {
|
||||
LLDB_RECORD_METHOD(void, SBCommandReturnObject, SetImmediateErrorFile,
|
||||
(FileSP), file_sp);
|
||||
SetImmediateErrorFile(SBFile(file_sp));
|
||||
}
|
||||
|
||||
void SBCommandReturnObject::PutCString(const char *string, int len) {
|
||||
@@ -335,6 +389,10 @@ void RegisterMethods<SBCommandReturnObject>(Registry &R) {
|
||||
LLDB_REGISTER_METHOD(size_t, SBCommandReturnObject, GetErrorSize, ());
|
||||
LLDB_REGISTER_METHOD(size_t, SBCommandReturnObject, PutOutput, (FILE *));
|
||||
LLDB_REGISTER_METHOD(size_t, SBCommandReturnObject, PutError, (FILE *));
|
||||
LLDB_REGISTER_METHOD(size_t, SBCommandReturnObject, PutOutput, (SBFile));
|
||||
LLDB_REGISTER_METHOD(size_t, SBCommandReturnObject, PutError, (SBFile));
|
||||
LLDB_REGISTER_METHOD(size_t, SBCommandReturnObject, PutOutput, (FileSP));
|
||||
LLDB_REGISTER_METHOD(size_t, SBCommandReturnObject, PutError, (FileSP));
|
||||
LLDB_REGISTER_METHOD(void, SBCommandReturnObject, Clear, ());
|
||||
LLDB_REGISTER_METHOD(lldb::ReturnStatus, SBCommandReturnObject, GetStatus,
|
||||
());
|
||||
@@ -352,6 +410,14 @@ void RegisterMethods<SBCommandReturnObject>(Registry &R) {
|
||||
(FILE *));
|
||||
LLDB_REGISTER_METHOD(void, SBCommandReturnObject, SetImmediateErrorFile,
|
||||
(FILE *));
|
||||
LLDB_REGISTER_METHOD(void, SBCommandReturnObject, SetImmediateOutputFile,
|
||||
(SBFile));
|
||||
LLDB_REGISTER_METHOD(void, SBCommandReturnObject, SetImmediateErrorFile,
|
||||
(SBFile));
|
||||
LLDB_REGISTER_METHOD(void, SBCommandReturnObject, SetImmediateOutputFile,
|
||||
(FileSP));
|
||||
LLDB_REGISTER_METHOD(void, SBCommandReturnObject, SetImmediateErrorFile,
|
||||
(FileSP));
|
||||
LLDB_REGISTER_METHOD(void, SBCommandReturnObject, SetImmediateOutputFile,
|
||||
(FILE *, bool));
|
||||
LLDB_REGISTER_METHOD(void, SBCommandReturnObject, SetImmediateErrorFile,
|
||||
|
||||
Reference in New Issue
Block a user