about summary refs log tree commit diff
diff options
context:
space:
mode:
authorNiko Matsakis <niko@alum.mit.edu>2014-02-07 14:52:41 -0500
committerNiko Matsakis <niko@alum.mit.edu>2014-02-11 16:55:24 -0500
commitb0ac40a243b1385ecf0bc25505fa3e65f32013c3 (patch)
tree33a92a328954646438ce8257ba715a3bb26d035a
parent8dff89c238a22b18b18c83f6ccafd94f66507f70 (diff)
downloadrust-b0ac40a243b1385ecf0bc25505fa3e65f32013c3.tar.gz
rust-b0ac40a243b1385ecf0bc25505fa3e65f32013c3.zip
sha2 -- introduce locals to clarify which subportions are being borrowed
-rw-r--r--src/librustc/util/sha2.rs8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/librustc/util/sha2.rs b/src/librustc/util/sha2.rs
index 1b3f5ec947d..116ec6bba29 100644
--- a/src/librustc/util/sha2.rs
+++ b/src/librustc/util/sha2.rs
@@ -453,7 +453,8 @@ impl Engine256 {
         assert!(!self.finished)
         // Assumes that input.len() can be converted to u64 without overflow
         self.length_bits = add_bytes_to_bits(self.length_bits, input.len() as u64);
-        self.buffer.input(input, |input: &[u8]| { self.state.process_block(input) });
+        let self_state = &mut self.state;
+        self.buffer.input(input, |input: &[u8]| { self_state.process_block(input) });
     }
 
     fn finish(&mut self) {
@@ -461,10 +462,11 @@ impl Engine256 {
             return;
         }
 
-        self.buffer.standard_padding(8, |input: &[u8]| { self.state.process_block(input) });
+        let self_state = &mut self.state;
+        self.buffer.standard_padding(8, |input: &[u8]| { self_state.process_block(input) });
         write_u32_be(self.buffer.next(4), (self.length_bits >> 32) as u32 );
         write_u32_be(self.buffer.next(4), self.length_bits as u32);
-        self.state.process_block(self.buffer.full_buffer());
+        self_state.process_block(self.buffer.full_buffer());
 
         self.finished = true;
     }