diff options
Diffstat (limited to 'core/io/marshalls.cpp')
-rw-r--r-- | core/io/marshalls.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/core/io/marshalls.cpp b/core/io/marshalls.cpp index bfef9ebeaf..3d384d9345 100644 --- a/core/io/marshalls.cpp +++ b/core/io/marshalls.cpp @@ -1155,10 +1155,12 @@ Error encode_variant(const Variant &p_variant, uint8_t *r_buffer, int &r_len, bo #ifdef REAL_T_IS_DOUBLE case Variant::VECTOR2: case Variant::VECTOR3: + case Variant::VECTOR4: case Variant::PACKED_VECTOR2_ARRAY: case Variant::PACKED_VECTOR3_ARRAY: case Variant::TRANSFORM2D: case Variant::TRANSFORM3D: + case Variant::PROJECTION: case Variant::QUATERNION: case Variant::PLANE: case Variant::BASIS: @@ -1619,8 +1621,10 @@ Error encode_variant(const Variant &p_variant, uint8_t *r_buffer, int &r_len, bo encode_uint32(datalen, buf); buf += 4; const uint8_t *r = data.ptr(); - memcpy(buf, &r[0], datalen * datasize); - buf += datalen * datasize; + if (r) { + memcpy(buf, &r[0], datalen * datasize); + buf += datalen * datasize; + } } r_len += 4 + datalen * datasize; |