|
@@ -73,16 +73,6 @@ int get_packet_len(uint32_t p_node_target, int p_packet_len) {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
-bool SceneRPCInterface::_sort_rpc_names(const Variant &p_l, const Variant &p_r) {
|
|
|
|
- if (likely(p_l.is_string() && p_r.is_string())) {
|
|
|
|
- return p_l.operator String() < p_r.operator String();
|
|
|
|
- }
|
|
|
|
- bool valid = false;
|
|
|
|
- Variant res;
|
|
|
|
- Variant::evaluate(Variant::OP_LESS, p_l, p_r, res, valid);
|
|
|
|
- return valid ? res.operator bool() : false;
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
void SceneRPCInterface::_parse_rpc_config(const Variant &p_config, bool p_for_node, RPCConfigCache &r_cache) {
|
|
void SceneRPCInterface::_parse_rpc_config(const Variant &p_config, bool p_for_node, RPCConfigCache &r_cache) {
|
|
if (p_config.get_type() == Variant::NIL) {
|
|
if (p_config.get_type() == Variant::NIL) {
|
|
return;
|
|
return;
|
|
@@ -90,7 +80,7 @@ void SceneRPCInterface::_parse_rpc_config(const Variant &p_config, bool p_for_no
|
|
ERR_FAIL_COND(p_config.get_type() != Variant::DICTIONARY);
|
|
ERR_FAIL_COND(p_config.get_type() != Variant::DICTIONARY);
|
|
const Dictionary config = p_config;
|
|
const Dictionary config = p_config;
|
|
Array names = config.keys();
|
|
Array names = config.keys();
|
|
- names.sort_custom(callable_mp_static(&SceneRPCInterface::_sort_rpc_names)); // Ensure ID order
|
|
|
|
|
|
+ names.sort_custom(callable_mp_static(&StringLikeVariantOrder::compare)); // Ensure ID order
|
|
for (int i = 0; i < names.size(); i++) {
|
|
for (int i = 0; i < names.size(); i++) {
|
|
ERR_CONTINUE(!names[i].is_string());
|
|
ERR_CONTINUE(!names[i].is_string());
|
|
String name = names[i].operator String();
|
|
String name = names[i].operator String();
|