Skip to content

Commit 6762a91

Browse files
committed
---
yaml --- r: 82248 b: refs/heads/master c: d86de18 h: refs/heads/master v: v3
1 parent 575634c commit 6762a91

File tree

3 files changed

+14
-13
lines changed

3 files changed

+14
-13
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
refs/heads/master: 649c1759e8b56f0ac31dd31e46eae81b7ffd1e2c
2+
refs/heads/master: d86de18b6198547f0a39e217123d8ec9ef4a9988
33
refs/heads/snap-stage1: e33de59e47c5076a89eadeb38f4934f58a3618a6
44
refs/heads/snap-stage3: 6c08cc2db4f98e9f07ae7d50338396c4123c2f0a
55
refs/heads/try: 70152ff55722878cde684ee6462c14c65f2c4729

trunk/src/libstd/rand/mod.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -762,8 +762,7 @@ pub fn task_rng() -> @mut TaskRng {
762762
/// ```
763763
pub fn seed_task_rng(seed: &[uint]) {
764764
let t_r = task_rng();
765-
(*t_r).reseed(seed);
766-
t_r.reseeder = DontReseed;
765+
(*t_r).reseed((DontReseed, seed));
767766
}
768767

769768
// Allow direct chaining with `task_rng`

trunk/src/libstd/rand/reseeding.rs

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -76,19 +76,21 @@ impl<R: Rng, Rsdr: Reseeder<R>> Rng for ReseedingRng<R, Rsdr> {
7676
}
7777
}
7878

79-
impl<S, R: SeedableRng<S>, Rsdr: Reseeder<R> + Default> SeedableRng<S> for ReseedingRng<R, Rsdr> {
80-
fn reseed(&mut self, seed: S) {
79+
impl<S, R: SeedableRng<S>, Rsdr: Reseeder<R>>
80+
SeedableRng<(Rsdr, S)> for ReseedingRng<R, Rsdr> {
81+
fn reseed(&mut self, (rsdr, seed): (Rsdr, S)) {
8182
self.rng.reseed(seed);
83+
self.reseeder = rsdr;
8284
self.bytes_generated = 0;
8385
}
84-
/// Create a new `ReseedingRng` from the given seed. This uses
85-
/// default values for both `generation_threshold` and `reseeder`.
86-
fn from_seed(seed: S) -> ReseedingRng<R, Rsdr> {
86+
/// Create a new `ReseedingRng` from the given reseeder and
87+
/// seed. This uses a default value for `generation_threshold`.
88+
fn from_seed((rsdr, seed): (Rsdr, S)) -> ReseedingRng<R, Rsdr> {
8789
ReseedingRng {
8890
rng: SeedableRng::from_seed(seed),
8991
generation_threshold: DEFAULT_GENERATION_THRESHOLD,
9092
bytes_generated: 0,
91-
reseeder: Default::default()
93+
reseeder: rsdr
9294
}
9395
}
9496
}
@@ -184,17 +186,17 @@ mod test {
184186

185187
#[test]
186188
fn test_rng_seeded() {
187-
let mut ra: MyRng = SeedableRng::from_seed(2);
188-
let mut rb: MyRng = SeedableRng::from_seed(2);
189+
let mut ra: MyRng = SeedableRng::from_seed((ReseedWithDefault, 2));
190+
let mut rb: MyRng = SeedableRng::from_seed((ReseedWithDefault, 2));
189191
assert_eq!(ra.gen_ascii_str(100u), rb.gen_ascii_str(100u));
190192
}
191193

192194
#[test]
193195
fn test_rng_reseed() {
194-
let mut r: MyRng = SeedableRng::from_seed(3);
196+
let mut r: MyRng = SeedableRng::from_seed((ReseedWithDefault, 3));
195197
let string1 = r.gen_ascii_str(100);
196198

197-
r.reseed(3);
199+
r.reseed((ReseedWithDefault, 3));
198200

199201
let string2 = r.gen_ascii_str(100);
200202
assert_eq!(string1, string2);

0 commit comments

Comments
 (0)