-
Notifications
You must be signed in to change notification settings - Fork 2.5k
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Fixes cargo package
buffering entire contents into memory
#7946
Conversation
Added a helper function for util::hex::hash_64 that uses streams the content instead of reading through the entire content in one go.
r? @Eh2406 (rust_highfive has picked a reviewer for you, use r? to override) |
src/cargo/util/hex.rs
Outdated
if n == 0 { | ||
break; | ||
} | ||
hasher.write(&buf); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
comparing it to
cargo/src/cargo/util/sha256.rs
Lines 20 to 29 in ab2b2c0
pub fn update_file(&mut self, mut file: &File) -> io::Result<&mut Sha256> { | |
let mut buf = [0; 64 * 1024]; | |
loop { | |
let n = file.read(&mut buf)?; | |
if n == 0 { | |
break Ok(self); | |
} | |
self.update(&buf[..n]); | |
} | |
} |
I'd have expected
hasher.write(&buf[..n]);
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oof, sorry about that.
I am getting this error
So I am not sure if it actually works. Edit:...Or maybe this is proofs that it works? |
src/cargo/util/hex.rs
Outdated
let mut hasher = SipHasher::new_with_keys(0, 0); | ||
let mut buf = [0; 64 * 1024]; | ||
loop { | ||
let n = file.read(&mut buf).unwrap(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The original code returns errors, instead of panicing.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah, I have changed it but now all the tests are failing..
Thanks for reviewing! |
@bors: r+ |
📌 Commit 0ac7aee has been approved by |
☀️ Test successful - checks-azure |
Update cargo, clippy Closes #69601 ## cargo 16 commits in e57bd02999c9f40d52116e0beca7d1dccb0643de..bda50510d1daf6e9c53ad6ccf603da6e0fa8103f 2020-02-21 20:20:10 +0000 to 2020-03-02 18:05:34 +0000 - Fix rare failure in collision_export test. (rust-lang/cargo#7956) - Ignore broken Cargo.toml in git sources (rust-lang/cargo#7947) - Add more fingerprint mtime debug logging. (rust-lang/cargo#7952) - Fix plugin tests for latest nightly. (rust-lang/cargo#7955) - Simplified usage code of SipHasher (rust-lang/cargo#7945) - Add a special case for git config discovery inside tests (rust-lang/cargo#7944) - Fixes issue rust-lang/cargo#7543 (rust-lang/cargo#7946) - Filter out cfgs which should not be used during build (rust-lang/cargo#7943) - Provide extra context on a query failure. (rust-lang/cargo#7934) - Try to clarify `cargo metadata`'s relationship with the workspace. (rust-lang/cargo#7927) - Update libgit2 dependency (rust-lang/cargo#7939) - Fix link in comment (rust-lang/cargo#7936) - Enable `cargo doc --open` tests on macos. (rust-lang/cargo#7932) - build-std: remove sysroot probe (rust-lang/cargo#7931) - Try to clarify how feature flags work on the "current" package. (rust-lang/cargo#7928) - Add extra details in the new feature resolver doc comment. (rust-lang/cargo#7918) ## clippy 6 commits in fc5d0cc..8b7f7e6 2020-02-24 05:58:17 +0000 to 2020-03-02 20:00:31 +0000 - Rustup to #69469 (rust-lang/rust-clippy#5254) - Some rustups (rust-lang/rust-clippy#5247) - Update git2 to 0.12 (rust-lang/rust-clippy#5232) - Rustup to #61812 (rust-lang/rust-clippy#5231) - Add lint to improve floating-point expressions (rust-lang/rust-clippy#4897) - Do not run deploy action on other repos (rust-lang/rust-clippy#5222)
cargo package
buffering entire contents into memory
Added a helper function for
util::hex::hash_64
that uses streamsthe content instead of reading through the entire content in one
go.
Edit: Should I add test cases for this?
Edit2: Per #7543