aboutsummaryrefslogtreecommitdiff
path: root/lldb/tools/lldb-dap/Protocol/ProtocolBase.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/tools/lldb-dap/Protocol/ProtocolBase.cpp')
-rw-r--r--lldb/tools/lldb-dap/Protocol/ProtocolBase.cpp35
1 files changed, 15 insertions, 20 deletions
diff --git a/lldb/tools/lldb-dap/Protocol/ProtocolBase.cpp b/lldb/tools/lldb-dap/Protocol/ProtocolBase.cpp
index 9cd9028..7235921 100644
--- a/lldb/tools/lldb-dap/Protocol/ProtocolBase.cpp
+++ b/lldb/tools/lldb-dap/Protocol/ProtocolBase.cpp
@@ -58,6 +58,8 @@ bool fromJSON(const json::Value &Params, MessageType &M, json::Path P) {
}
json::Value toJSON(const Request &R) {
+ assert(R.seq != kCalculateSeq && "invalid seq");
+
json::Object Result{
{"type", "request"},
{"seq", R.seq},
@@ -103,8 +105,10 @@ bool operator==(const Request &a, const Request &b) {
}
json::Value toJSON(const Response &R) {
+ assert(R.seq != kCalculateSeq && "invalid seq");
+
json::Object Result{{"type", "response"},
- {"seq", 0},
+ {"seq", R.seq},
{"command", R.command},
{"request_seq", R.request_seq},
{"success", R.success}};
@@ -132,8 +136,9 @@ json::Value toJSON(const Response &R) {
return std::move(Result);
}
-bool fromJSON(json::Value const &Params,
- std::variant<ResponseMessage, std::string> &M, json::Path P) {
+static bool fromJSON(json::Value const &Params,
+ std::variant<ResponseMessage, std::string> &M,
+ json::Path P) {
auto rawMessage = Params.getAsString();
if (!rawMessage) {
P.report("expected a string");
@@ -157,8 +162,7 @@ bool fromJSON(json::Value const &Params, Response &R, json::Path P) {
return false;
MessageType type;
- int64_t seq;
- if (!O.map("type", type) || !O.map("seq", seq) ||
+ if (!O.map("type", type) || !O.map("seq", R.seq) ||
!O.map("command", R.command) || !O.map("request_seq", R.request_seq))
return false;
@@ -168,12 +172,7 @@ bool fromJSON(json::Value const &Params, Response &R, json::Path P) {
}
if (R.command.empty()) {
- P.field("command").report("expected to not be ''");
- return false;
- }
-
- if (R.request_seq == 0) {
- P.field("request_seq").report("expected to not be '0'");
+ P.field("command").report("expected to not be empty");
return false;
}
@@ -217,9 +216,11 @@ bool fromJSON(json::Value const &Params, ErrorMessage &EM, json::Path P) {
}
json::Value toJSON(const Event &E) {
+ assert(E.seq != kCalculateSeq && "invalid seq");
+
json::Object Result{
{"type", "event"},
- {"seq", 0},
+ {"seq", E.seq},
{"event", E.event},
};
@@ -235,8 +236,7 @@ bool fromJSON(json::Value const &Params, Event &E, json::Path P) {
return false;
MessageType type;
- int64_t seq;
- if (!O.map("type", type) || !O.map("seq", seq) || !O.map("event", E.event))
+ if (!O.map("type", type) || !O.map("seq", E.seq) || !O.map("event", E.event))
return false;
if (type != eMessageTypeEvent) {
@@ -244,13 +244,8 @@ bool fromJSON(json::Value const &Params, Event &E, json::Path P) {
return false;
}
- if (seq != 0) {
- P.field("seq").report("expected to be '0'");
- return false;
- }
-
if (E.event.empty()) {
- P.field("event").report("expected to not be ''");
+ P.field("event").report("expected to not be empty");
return false;
}