Browse Source

Initialize padding on PoolByteArray serialization

Lukas Zanner 6 years ago
parent
commit
c35f4e8808
1 changed files with 5 additions and 1 deletions
  1. 5 1
      core/io/marshalls.cpp

+ 5 - 1
core/io/marshalls.cpp

@@ -1231,11 +1231,15 @@ Error encode_variant(const Variant &p_variant, uint8_t *r_buffer, int &r_len, bo
 				buf += 4;
 				buf += 4;
 				PoolVector<uint8_t>::Read r = data.read();
 				PoolVector<uint8_t>::Read r = data.read();
 				copymem(buf, &r[0], datalen * datasize);
 				copymem(buf, &r[0], datalen * datasize);
+				buf += datalen * datasize;
 			}
 			}
 
 
 			r_len += 4 + datalen * datasize;
 			r_len += 4 + datalen * datasize;
-			while (r_len % 4)
+			while (r_len % 4) {
 				r_len++;
 				r_len++;
+				if (buf)
+					*(buf++) = 0;
+			}
 
 
 		} break;
 		} break;
 		case Variant::POOL_INT_ARRAY: {
 		case Variant::POOL_INT_ARRAY: {