@@ -164,30 +164,29 @@ impl<'py> PyBitGeneratorGuard {
164
164
/// Returns the next random unsigned 64 bit integer.
165
165
pub fn next_u64 ( & mut self ) -> u64 {
166
166
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 )
170
169
}
171
170
}
172
171
/// Returns the next random unsigned 32 bit integer.
173
172
pub fn next_u32 ( & mut self ) -> u32 {
174
173
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 )
177
176
}
178
177
}
179
178
/// Returns the next random double.
180
179
pub fn next_double ( & mut self ) -> libc:: c_double {
181
180
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 )
184
183
}
185
184
}
186
185
/// Returns the next raw value (can be used for testing).
187
186
pub fn next_raw ( & mut self ) -> u64 {
188
187
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 )
191
190
}
192
191
}
193
192
}
0 commit comments