Skip to content

Commit ecebe65

Browse files
committed
Removes String usage from scene_sync and debug_print func.
1 parent 5fa2973 commit ecebe65

7 files changed

Lines changed: 78 additions & 88 deletions

godot4/gd_scene_synchronizer.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -499,15 +499,15 @@ void GdSceneSynchronizer::unregister_variable(Node *p_node, const StringName &p_
499499
uint32_t GdSceneSynchronizer::get_variable_id(Node *p_node, const StringName &p_variable) {
500500
NS::ObjectLocalId id = scene_synchronizer.find_object_local_id(scene_synchronizer.to_handle(p_node));
501501
if (id != NS::ObjectLocalId::NONE) {
502-
return scene_synchronizer.get_variable_id(id, p_variable).id;
502+
return scene_synchronizer.get_variable_id(id, std::string(String(p_variable).utf8())).id;
503503
}
504504
return NS::VarId::NONE.id;
505505
}
506506

507507
void GdSceneSynchronizer::set_skip_rewinding(Node *p_node, const StringName &p_variable, bool p_skip_rewinding) {
508508
NS::ObjectLocalId id = scene_synchronizer.find_object_local_id(scene_synchronizer.to_handle(p_node));
509509
if (id != NS::ObjectLocalId::NONE) {
510-
scene_synchronizer.set_skip_rewinding(id, p_variable, p_skip_rewinding);
510+
scene_synchronizer.set_skip_rewinding(id, std::string(String(p_variable).utf8()), p_skip_rewinding);
511511
}
512512
}
513513

@@ -520,14 +520,14 @@ uint64_t GdSceneSynchronizer::track_variable_changes(
520520
ERR_FAIL_COND_V(p_nodes.size() == 0, 0);
521521

522522
std::vector<NS::ObjectLocalId> objects_ids;
523-
std::vector<StringName> var_names;
523+
std::vector<std::string> var_names;
524524

525525
for (int i = 0; i < int(p_nodes.size()); i++) {
526526
Object *obj = p_nodes[i];
527527
Node *node = dynamic_cast<Node *>(obj);
528528
NS::ObjectLocalId lid = scene_synchronizer.find_object_local_id(scene_synchronizer.to_handle(node));
529529
objects_ids.push_back(lid);
530-
var_names.push_back(p_vars[i]);
530+
var_names.push_back(std::string(String(p_vars[i]).utf8()));
531531
}
532532

533533
NS::ListenerHandle raw_handle =

scene_synchronizer.cpp

Lines changed: 49 additions & 49 deletions
Large diffs are not rendered by default.

scene_synchronizer.h

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -309,7 +309,7 @@ class SceneSynchronizerBase {
309309
void set_latency_update_rate(float p_rate_seconds);
310310
float get_latency_update_rate() const;
311311

312-
bool is_variable_registered(ObjectLocalId p_id, const StringName &p_variable) const;
312+
bool is_variable_registered(ObjectLocalId p_id, const std::string &p_variable) const;
313313

314314
public: // ---------------------------------------------------------------- RPCs
315315
void rpc_latency();
@@ -340,19 +340,19 @@ class SceneSynchronizerBase {
340340
/// This may return `NONE` in various cases:
341341
/// - The Object is not registered.
342342
/// - The variable is not registered.
343-
VarId get_variable_id(ObjectLocalId p_id, const StringName &p_variable);
343+
VarId get_variable_id(ObjectLocalId p_id, const std::string &p_variable);
344344

345-
void set_skip_rewinding(ObjectLocalId p_id, const StringName &p_variable, bool p_skip_rewinding);
345+
void set_skip_rewinding(ObjectLocalId p_id, const std::string &p_variable, bool p_skip_rewinding);
346346

347347
ListenerHandle track_variable_changes(
348348
ObjectLocalId p_id,
349-
const StringName &p_variable,
349+
const std::string &p_variable,
350350
std::function<void(const std::vector<VarData> &p_old_values)> p_listener_func,
351351
NetEventFlag p_flags = NetEventFlag::DEFAULT);
352352

353353
ListenerHandle track_variables_changes(
354354
const std::vector<ObjectLocalId> &p_object_ids,
355-
const std::vector<StringName> &p_variables,
355+
const std::vector<std::string> &p_variables,
356356
std::function<void(const std::vector<VarData> &p_old_values)> p_listener_func,
357357
NetEventFlag p_flags = NetEventFlag::DEFAULT);
358358

scene_synchronizer_debugger.cpp

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -620,15 +620,6 @@ void SceneSynchronizerDebugger::debug_warning(NS::NetworkInterface *p_network_in
620620
#endif
621621
}
622622

623-
void SceneSynchronizerDebugger::debug_error(NS::NetworkInterface *p_network_interface, const String &p_message, bool p_silent) {
624-
#ifdef DEBUG_ENABLED
625-
print(
626-
NS::PrintMessageType::ERROR,
627-
p_message.utf8().ptr(),
628-
p_network_interface ? p_network_interface->get_owner_name() : "GLOBAL");
629-
#endif
630-
}
631-
632623
void SceneSynchronizerDebugger::print(NS::PrintMessageType p_level, const std::string &p_message, const std::string &p_object_name, bool p_force_print_to_log) {
633624
#ifdef DEBUG_ENABLED
634625

@@ -693,7 +684,7 @@ void SceneSynchronizerDebugger::dump_tracked_objects(const NS::SceneSynchronizer
693684
for (List<PropertyInfo>::Element *e = tracked_nodes[i].properties->front(); e; e = e->next()) {
694685
std::string prefix;
695686
// TODO the below cast is an unsafe cast. Please refactor this.
696-
if (p_scene_sync->is_variable_registered(p_scene_sync->find_object_local_id({ reinterpret_cast<std::intptr_t>(tracked_nodes[i].node) }), e->get().name)) {
687+
if (p_scene_sync->is_variable_registered(p_scene_sync->find_object_local_id({ reinterpret_cast<std::intptr_t>(tracked_nodes[i].node) }), std::string(e->get().name.utf8()))) {
697688
prefix = "* ";
698689
}
699690

scene_synchronizer_debugger.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,6 @@ class SceneSynchronizerDebugger : public Node {
172172

173173
void debug_print(NS::NetworkInterface *p_network_interface, const String &p_message, bool p_silent = false);
174174
void debug_warning(NS::NetworkInterface *p_network_interface, const String &p_message, bool p_silent = false);
175-
void debug_error(NS::NetworkInterface *p_network_interface, const String &p_message, bool p_silent = false);
176175

177176
void print(
178177
NS::PrintMessageType p_level,

snapshot.cpp

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ bool compare_vars(
2828
const std::vector<NS::NameAndVar> &p_server_vars,
2929
const std::vector<NS::NameAndVar> &p_client_vars,
3030
NS::Snapshot *r_no_rewind_recover,
31-
LocalVector<String> *r_differences_info) {
31+
std::vector<std::string> *r_differences_info) {
3232
const NS::NameAndVar *s_vars = p_server_vars.data();
3333
const NS::NameAndVar *c_vars = p_client_vars.data();
3434

@@ -71,21 +71,21 @@ bool compare_vars(
7171

7272
if (r_differences_info) {
7373
r_differences_info->push_back(
74-
"[NO REWIND] Difference found on var #" + itos(var_index) + " " + p_synchronizer_node_data->vars[var_index].var.name.c_str() + " " +
75-
"Server value: `" + NS::SceneSynchronizerBase::var_data_stringify(s_vars[var_index].value).c_str() + "` " +
76-
"Client value: `" + NS::SceneSynchronizerBase::var_data_stringify(c_vars[var_index].value).c_str() + "`. " +
77-
"[Server name: `" + s_vars[var_index].name.c_str() + "` " +
78-
"Client name: `" + c_vars[var_index].name.c_str() + "`].");
74+
"[NO REWIND] Difference found on var #" + std::to_string(var_index) + " " + p_synchronizer_node_data->vars[var_index].var.name + " " +
75+
"Server value: `" + NS::SceneSynchronizerBase::var_data_stringify(s_vars[var_index].value) + "` " +
76+
"Client value: `" + NS::SceneSynchronizerBase::var_data_stringify(c_vars[var_index].value) + "`. " +
77+
"[Server name: `" + s_vars[var_index].name + "` " +
78+
"Client name: `" + c_vars[var_index].name + "`].");
7979
}
8080
} else {
8181
// The vars are different.
8282
if (r_differences_info) {
8383
r_differences_info->push_back(
84-
"Difference found on var #" + itos(var_index) + " " + p_synchronizer_node_data->vars[var_index].var.name.c_str() + " " +
85-
"Server value: `" + NS::SceneSynchronizerBase::var_data_stringify(s_vars[var_index].value).c_str() + "` " +
86-
"Client value: `" + NS::SceneSynchronizerBase::var_data_stringify(c_vars[var_index].value).c_str() + "`. " +
87-
"[Server name: `" + s_vars[var_index].name.c_str() + "` " +
88-
"Client name: `" + c_vars[var_index].name.c_str() + "`].");
84+
"Difference found on var #" + std::to_string(var_index) + " " + p_synchronizer_node_data->vars[var_index].var.name + " " +
85+
"Server value: `" + NS::SceneSynchronizerBase::var_data_stringify(s_vars[var_index].value) + "` " +
86+
"Client value: `" + NS::SceneSynchronizerBase::var_data_stringify(c_vars[var_index].value) + "`. " +
87+
"[Server name: `" + s_vars[var_index].name + "` " +
88+
"Client name: `" + c_vars[var_index].name + "`].");
8989
}
9090
#ifdef DEBUG_ENABLED
9191
is_equal = false;
@@ -129,10 +129,10 @@ bool NS::Snapshot::compare(
129129
const Snapshot &p_snap_A,
130130
const Snapshot &p_snap_B,
131131
Snapshot *r_no_rewind_recover,
132-
LocalVector<String> *r_differences_info
132+
std::vector<std::string> *r_differences_info
133133
#ifdef DEBUG_ENABLED
134134
,
135-
LocalVector<ObjectNetId> *r_different_node_data
135+
std::vector<ObjectNetId> *r_different_node_data
136136
#endif
137137
) {
138138
#ifdef DEBUG_ENABLED
@@ -141,7 +141,7 @@ bool NS::Snapshot::compare(
141141

142142
if (p_snap_A.simulated_objects.size() != p_snap_B.simulated_objects.size()) {
143143
if (r_differences_info) {
144-
r_differences_info->push_back("Difference detected: simulated_object count is different snapA: " + itos(p_snap_A.simulated_objects.size()) + " snapB: " + itos(p_snap_B.simulated_objects.size()) + ".");
144+
r_differences_info->push_back("Difference detected: simulated_object count is different snapA: " + std::to_string(p_snap_A.simulated_objects.size()) + " snapB: " + std::to_string(p_snap_B.simulated_objects.size()) + ".");
145145
}
146146
#ifdef DEBUG_ENABLED
147147
is_equal = false;
@@ -152,7 +152,7 @@ bool NS::Snapshot::compare(
152152
for (size_t i = 0; i < p_snap_A.simulated_objects.size(); i++) {
153153
if (p_snap_A.simulated_objects[i] != p_snap_B.simulated_objects[i]) {
154154
if (r_differences_info) {
155-
r_differences_info->push_back("Difference detected: simulated object index `" + itos(i) + "` value is snapA `" + itos(p_snap_A.simulated_objects[i].id) + "` snapB `" + itos(p_snap_B.simulated_objects[i].id) + "`.");
155+
r_differences_info->push_back("Difference detected: simulated object index `" + std::to_string(i) + "` value is snapA `" + std::to_string(p_snap_A.simulated_objects[i].id) + "` snapB `" + std::to_string(p_snap_B.simulated_objects[i].id) + "`.");
156156
}
157157
#ifdef DEBUG_ENABLED
158158
is_equal = false;
@@ -198,7 +198,7 @@ bool NS::Snapshot::compare(
198198
bool are_nodes_different = false;
199199
if (net_node_id >= ObjectNetId{ uint32_t(p_snap_B.object_vars.size()) }) {
200200
if (r_differences_info) {
201-
r_differences_info->push_back("Difference detected: The B snapshot doesn't contain this node: " + String(rew_node_data->object_name.c_str()));
201+
r_differences_info->push_back("Difference detected: The B snapshot doesn't contain this node: " + rew_node_data->object_name);
202202
}
203203
#ifdef DEBUG_ENABLED
204204
is_equal = false;
@@ -217,7 +217,7 @@ bool NS::Snapshot::compare(
217217

218218
if (are_nodes_different) {
219219
if (r_differences_info) {
220-
r_differences_info->push_back("Difference detected: The node status on snapshot B is different. NODE: " + String(rew_node_data->object_name.c_str()));
220+
r_differences_info->push_back("Difference detected: The node status on snapshot B is different. NODE: " + rew_node_data->object_name);
221221
}
222222
#ifdef DEBUG_ENABLED
223223
is_equal = false;

snapshot.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,10 @@ struct Snapshot {
3333
const Snapshot &p_snap_A,
3434
const Snapshot &p_snap_B,
3535
Snapshot *r_no_rewind_recover,
36-
LocalVector<String> *r_differences_info
36+
std::vector<std::string> *r_differences_info
3737
#ifdef DEBUG_ENABLED
3838
,
39-
LocalVector<ObjectNetId> *r_different_node_data);
39+
std::vector<ObjectNetId> *r_different_node_data);
4040
#else
4141
);
4242
#endif

0 commit comments

Comments
 (0)