From 337430af7f205bbbd3aff2f4735f3ba79c356617 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Verschelde?= Date: Mon, 15 Jun 2020 09:51:53 +0200 Subject: [PATCH] GDScript LSP: Fix wrong error checks added in #39385 Reverts `latest_client_id` back to 0, as I misunderstood how the client IDs are assigned and, without further testing and debugging, I can't say if this was a bug or a valid default value. Similarly, a `latest_client_id` of -1 is no longer raising an error. Fixes #39548. --- .../language_server/gdscript_language_protocol.cpp | 8 +++++--- .../gdscript/language_server/gdscript_language_protocol.h | 2 +- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/modules/gdscript/language_server/gdscript_language_protocol.cpp b/modules/gdscript/language_server/gdscript_language_protocol.cpp index f3c9df5d39d0..7475b24d3d90 100644 --- a/modules/gdscript/language_server/gdscript_language_protocol.cpp +++ b/modules/gdscript/language_server/gdscript_language_protocol.cpp @@ -190,9 +190,7 @@ Dictionary GDScriptLanguageProtocol::initialize(const Dictionary &p_params) { params["path"] = workspace->root; Dictionary request = make_notification("gdscript_client/changeWorkspace", params); - ERR_FAIL_COND_V_MSG(latest_client_id == -1, ret.to_json(), - "GDScriptLanguageProtocol: Can't initialize as no client is connected."); - ERR_FAIL_INDEX_V_MSG((uint64_t)latest_client_id, clients.size(), ret.to_json(), + ERR_FAIL_COND_V_MSG(!clients.has(latest_client_id), ret.to_json(), vformat("GDScriptLanguageProtocol: Can't initialize invalid peer '%d'.", latest_client_id)); Ref peer = clients.get(latest_client_id); if (peer != nullptr) { @@ -277,11 +275,15 @@ void GDScriptLanguageProtocol::notify_client(const String &p_method, const Varia "GDScript LSP: Can't notify client as none was connected."); p_client_id = latest_client_id; } +<<<<<<< HEAD <<<<<<< HEAD ERR_FAIL_COND(!clients.has(p_client_id)); ======= ERR_FAIL_INDEX((uint64_t)p_client_id, clients.size()); >>>>>>> e34f33711b... GDScript LSP: Fix crash in notify_client +======= + ERR_FAIL_COND(!clients.has(p_client_id)); +>>>>>>> 786f4ada35... GDScript LSP: Fix wrong error checks added in #39385 Ref peer = clients.get(p_client_id); ERR_FAIL_COND(peer == nullptr); diff --git a/modules/gdscript/language_server/gdscript_language_protocol.h b/modules/gdscript/language_server/gdscript_language_protocol.h index 564878313d44..cf5242e8c5ff 100644 --- a/modules/gdscript/language_server/gdscript_language_protocol.h +++ b/modules/gdscript/language_server/gdscript_language_protocol.h @@ -70,7 +70,7 @@ class GDScriptLanguageProtocol : public JSONRPC { HashMap> clients; Ref server; - int latest_client_id = -1; + int latest_client_id = 0; int next_client_id = 0; Ref text_document;