Skip to content

Commit 9fdcba9

Browse files
committed
Adjusting the reader helpers to take lldb_private::IOObject * instead of the shared_ptr.
1 parent 138d4ca commit 9fdcba9

File tree

1 file changed

+10
-7
lines changed

1 file changed

+10
-7
lines changed

lldb/tools/lldb-dap/Transport.cpp

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,7 @@ using namespace lldb_private;
2525
using namespace lldb_dap;
2626
using namespace lldb_dap::protocol;
2727

28-
static Expected<std::string> ReadFull(IOObjectSP &descriptor, size_t length) {
29-
if (!descriptor || !descriptor->IsValid())
30-
return createStringError("transport input is closed");
28+
static Expected<std::string> ReadFull(IOObject *descriptor, size_t length) {
3129
std::string data;
3230
data.resize(length);
3331
auto status = descriptor->Read(data.data(), length);
@@ -36,7 +34,7 @@ static Expected<std::string> ReadFull(IOObjectSP &descriptor, size_t length) {
3634
return data.substr(0, length);
3735
}
3836

39-
static Expected<std::string> ReadUntil(IOObjectSP &descriptor,
37+
static Expected<std::string> ReadUntil(IOObject *descriptor,
4038
StringRef delimiter) {
4139
std::string buffer;
4240
buffer.reserve(delimiter.size() + 1);
@@ -68,8 +66,13 @@ Transport::Transport(StringRef client_name, std::ofstream *log,
6866
m_output(std::move(output)) {}
6967

7068
std::optional<Message> Transport::Read() {
69+
if (!m_input || !m_input->IsValid()) {
70+
DAP_LOG(m_log, "({0}) input is closed", m_client_name);
71+
return std::nullopt;
72+
}
73+
IOObject *input = m_input.get();
7174
Expected<std::string> message_header =
72-
ReadFull(m_input, kHeaderContentLength.size());
75+
ReadFull(input, kHeaderContentLength.size());
7376
if (!message_header) {
7477
DAP_LOG_ERROR(m_log, message_header.takeError(), "({1}) read failed: {0}",
7578
m_client_name);
@@ -85,7 +88,7 @@ std::optional<Message> Transport::Read() {
8588
return std::nullopt;
8689
}
8790

88-
Expected<std::string> raw_length = ReadUntil(m_input, kHeaderSeparator);
91+
Expected<std::string> raw_length = ReadUntil(input, kHeaderSeparator);
8992
if (!raw_length) {
9093
DAP_LOG_ERROR(m_log, raw_length.takeError(), "({1}) read failed: {0}",
9194
m_client_name);
@@ -99,7 +102,7 @@ std::optional<Message> Transport::Read() {
99102
return std::nullopt;
100103
}
101104

102-
Expected<std::string> raw_json = ReadFull(m_input, length);
105+
Expected<std::string> raw_json = ReadFull(input, length);
103106
if (!raw_json) {
104107
DAP_LOG_ERROR(m_log, raw_json.takeError(), "({1}) read failed: {0}",
105108
m_client_name);

0 commit comments

Comments
 (0)