summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRémi Verschelde <rverschelde@gmail.com>2018-10-02 09:40:21 +0200
committerGitHub <noreply@github.com>2018-10-02 09:40:21 +0200
commitffa8420aec1ca0af8feca0697613efad6d3f0e4e (patch)
tree50b265dd8d08a98887b9f59f4670772b11168138
parent8cabd31577ebe6567bbcc8138367ca4a7c1eb7f0 (diff)
parentdba8c3999d260fca0e7f891ab181829de714ffbe (diff)
Merge pull request #22223 from Faless/fix_int32_encode
Fix put_var encoding some 32bits ints as 64bits.
-rw-r--r--core/io/marshalls.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/core/io/marshalls.cpp b/core/io/marshalls.cpp
index d33d436b74..628019ef7f 100644
--- a/core/io/marshalls.cpp
+++ b/core/io/marshalls.cpp
@@ -807,7 +807,7 @@ Error encode_variant(const Variant &p_variant, uint8_t *r_buffer, int &r_len, bo
case Variant::INT: {
int64_t val = p_variant;
- if (val > 0x7FFFFFFF || val < -0x80000000) {
+ if (val > (int64_t)INT_MAX || val < (int64_t)INT_MIN) {
flags |= ENCODE_FLAG_64;
}
} break;
@@ -851,7 +851,7 @@ Error encode_variant(const Variant &p_variant, uint8_t *r_buffer, int &r_len, bo
case Variant::INT: {
int64_t val = p_variant;
- if (val > 0x7FFFFFFF || val < -0x80000000) {
+ if (flags & ENCODE_FLAG_64) {
//64 bits
if (buf) {
encode_uint64(val, buf);
@@ -870,7 +870,7 @@ Error encode_variant(const Variant &p_variant, uint8_t *r_buffer, int &r_len, bo
double d = p_variant;
float f = d;
- if (double(f) != d) {
+ if (flags & ENCODE_FLAG_64) {
if (buf) {
encode_double(p_variant.operator double(), buf);
}