Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

blockstore: Use Vec::from() instead of slice::to_vec() #4047

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

steviez
Copy link

@steviez steviez commented Dec 10, 2024

Problem

Vec::from() on a Box<[T]> takes over the heap allocation whereas slice::to_vec() copies the contents into a new Vec. We don't need the old Box<[u8]> so transferring ownership is sufficient here

Summary of Changes

Use Vec::from() instead of to_vec(). Playing with it on godbolt, we save a movzx when optimization cranked up. So, not something that will move the needle on TPS or anything, but I view this more as a correctness thing too.

https://godbolt.org/z/Wbs6v6vEs

Vec::from() on a Box<[T]> takes over the heap allocation whereas
slice::to_vec() copies the contents into a new Vec. We don't need the
old Box<[u8]> so transferring ownership is sufficient here
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant