Use optionals for ByteStream

This commit is contained in:
HikikoMarmy
2025-04-24 11:17:12 +01:00
parent d81261581d
commit 8b03d059bb

View File

@@ -62,11 +62,11 @@ T ByteStream::read()
void ByteStream::write_utf8( const std::string &str, std::optional<uint32_t> length ) void ByteStream::write_utf8( const std::string &str, std::optional<uint32_t> length )
{ {
if( length ) if( length.has_value() )
{ {
write_u32( length.value() ); write_u32( length.value() );
if( length > str.size() ) if( length.value() > str.size() )
{ {
write_bytes( std::vector< uint8_t >( str.begin(), str.end() ) ); write_bytes( std::vector< uint8_t >( str.begin(), str.end() ) );
write_bytes( std::vector< uint8_t >( length.value() - str.size(), 0 ) ); write_bytes( std::vector< uint8_t >( length.value() - str.size(), 0 ) );
@@ -156,9 +156,11 @@ void ByteStream::write_encrypted_utf16( const std::wstring &str )
} }
auto encrypted = RealmCrypt::encryptSymmetric( utf16 ); auto encrypted = RealmCrypt::encryptSymmetric( utf16 );
uint32_t encryptedLength = static_cast< uint32_t >( encrypted.size() );
uint32_t decryptedLength = static_cast< uint32_t >( utf16.size() );
write_u32( static_cast< uint32_t >( encrypted.size() ) + 4 ); write_u32( ( encryptedLength + 4 ) / 2 );
write_u32( static_cast< uint32_t >( str.size() ) * 2 ); write_u32( decryptedLength );
write_bytes( encrypted ); write_bytes( encrypted );
} }