@@ -164,30 +164,29 @@ impl<'py> PyBitGeneratorGuard {
164164 /// Returns the next random unsigned 64 bit integer.
165165 pub fn next_u64 ( & mut self ) -> u64 {
166166 unsafe {
167- // TODO: maybe use pointer offsets instead of `mut`
168- let bitgen = self . raw_bitgen . as_mut ( ) ;
169- ( bitgen. next_uint64 ) ( bitgen. state )
167+ let bitgen = self . raw_bitgen . as_ptr ( ) ;
168+ ( ( * bitgen) . next_uint64 ) ( ( * bitgen) . state )
170169 }
171170 }
172171 /// Returns the next random unsigned 32 bit integer.
173172 pub fn next_u32 ( & mut self ) -> u32 {
174173 unsafe {
175- let bitgen = self . raw_bitgen . as_mut ( ) ;
176- ( bitgen. next_uint32 ) ( bitgen. state )
174+ let bitgen = self . raw_bitgen . as_ptr ( ) ;
175+ ( ( * bitgen) . next_uint32 ) ( ( * bitgen) . state )
177176 }
178177 }
179178 /// Returns the next random double.
180179 pub fn next_double ( & mut self ) -> libc:: c_double {
181180 unsafe {
182- let bitgen = self . raw_bitgen . as_mut ( ) ;
183- ( bitgen. next_double ) ( bitgen. state )
181+ let bitgen = self . raw_bitgen . as_ptr ( ) ;
182+ ( ( * bitgen) . next_double ) ( ( * bitgen) . state )
184183 }
185184 }
186185 /// Returns the next raw value (can be used for testing).
187186 pub fn next_raw ( & mut self ) -> u64 {
188187 unsafe {
189- let bitgen = self . raw_bitgen . as_mut ( ) ;
190- ( bitgen. next_raw ) ( bitgen. state )
188+ let bitgen = self . raw_bitgen . as_ptr ( ) ;
189+ ( ( * bitgen) . next_raw ) ( ( * bitgen) . state )
191190 }
192191 }
193192}
0 commit comments