mirror of
https://github.com/godotengine/godot.git
synced 2025-11-08 01:21:26 +00:00
Add object encoding param to serialization methods
Network peers get_var/put_var
File get_var/store_var
GDScript/Mono/VisualScript bytes2var/var2bytes
Add MultiplayerAPI.allow_object_decoding member which deprecates PacketPeer.allow_object_decoding.
Break ABI compatibaility (API compatibility for GDNative).
(cherry picked from commit 393e62b98a)
This commit is contained in:
parent
a1ad05df86
commit
e0fe795433
23 changed files with 220 additions and 104 deletions
|
|
@ -1200,7 +1200,8 @@ Error GDScriptTokenizerBuffer::set_code_buffer(const Vector<uint8_t> &p_buffer)
|
|||
|
||||
Variant v;
|
||||
int len;
|
||||
Error err = decode_variant(v, b, total_len, &len);
|
||||
// An object cannot be constant, never decode objects
|
||||
Error err = decode_variant(v, b, total_len, &len, false);
|
||||
if (err)
|
||||
return err;
|
||||
b += len;
|
||||
|
|
@ -1368,11 +1369,12 @@ Vector<uint8_t> GDScriptTokenizerBuffer::parse_code_string(const String &p_code)
|
|||
for (Map<int, Variant>::Element *E = rev_constant_map.front(); E; E = E->next()) {
|
||||
|
||||
int len;
|
||||
Error err = encode_variant(E->get(), NULL, len);
|
||||
// Objects cannot be constant, never encode objects
|
||||
Error err = encode_variant(E->get(), NULL, len, false);
|
||||
ERR_FAIL_COND_V(err != OK, Vector<uint8_t>());
|
||||
int pos = buf.size();
|
||||
buf.resize(pos + len);
|
||||
encode_variant(E->get(), &buf.write[pos], len);
|
||||
encode_variant(E->get(), &buf.write[pos], len, false);
|
||||
}
|
||||
|
||||
for (Map<int, uint32_t>::Element *E = rev_line_map.front(); E; E = E->next()) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue