Skip to content

Commit 7ea9598

Browse files
committed
Migrate VersionedMessage to wincode v0.2.2 builder
1 parent 07c53ae commit 7ea9598

File tree

3 files changed

+21
-14
lines changed

3 files changed

+21
-14
lines changed

Cargo.lock

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -331,7 +331,7 @@ tiny-bip39 = "2.0.0"
331331
toml = "0.8.23"
332332
uriparse = "0.6.4"
333333
wasm-bindgen = "0.2.100"
334-
wincode = { version = "0.2.1", features = ["derive"], default-features = false }
334+
wincode = { version = "0.2.2", features = ["derive"], default-features = false }
335335

336336
[profile.release]
337337
split-debuginfo = "unpacked"

message/src/versions/mod.rs

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,9 @@ use {
1212
};
1313
#[cfg(feature = "wincode")]
1414
use {
15+
crate::{
16+
legacy::MessageUninitBuilder as LegacyMessageUninitBuilder, MessageHeaderUninitBuilder,
17+
},
1518
core::mem::MaybeUninit,
1619
wincode::{
1720
io::{Reader, Writer},
@@ -385,19 +388,23 @@ impl<'de> SchemaRead<'de> for VersionedMessage {
385388
}
386389

387390
let mut msg = MaybeUninit::<LegacyMessage>::uninit();
391+
let mut msg_builder = LegacyMessageUninitBuilder::from_maybe_uninit_mut(&mut msg);
388392
// We've already read the variant byte which, in the legacy case, represents
389393
// the `num_required_signatures` field.
390394
// As such, we need to write the remaining fields into the message manually,
391395
// as calling `LegacyMessage::read` will miss the first field.
392-
let header_uninit = LegacyMessage::uninit_header_mut(&mut msg);
393-
394-
MessageHeader::write_uninit_num_required_signatures(variant, header_uninit);
395-
MessageHeader::read_num_readonly_signed_accounts(reader, header_uninit)?;
396-
MessageHeader::read_num_readonly_unsigned_accounts(reader, header_uninit)?;
397-
398-
LegacyMessage::read_account_keys(reader, &mut msg)?;
399-
LegacyMessage::read_recent_blockhash(reader, &mut msg)?;
400-
LegacyMessage::read_instructions(reader, &mut msg)?;
396+
let mut header_builder =
397+
MessageHeaderUninitBuilder::from_maybe_uninit_mut(msg_builder.uninit_header_mut());
398+
header_builder.write_num_required_signatures(variant);
399+
header_builder.read_num_readonly_signed_accounts(reader)?;
400+
header_builder.read_num_readonly_unsigned_accounts(reader)?;
401+
header_builder.finish();
402+
unsafe { msg_builder.assume_init_header() };
403+
404+
msg_builder.read_account_keys(reader)?;
405+
msg_builder.read_recent_blockhash(reader)?;
406+
msg_builder.read_instructions(reader)?;
407+
msg_builder.finish();
401408

402409
let msg = unsafe { msg.assume_init() };
403410
dst.write(VersionedMessage::Legacy(msg));

0 commit comments

Comments
 (0)