| ... | @@ -32,7 +32,7 @@ struct Rand { | ... | @@ -32,7 +32,7 @@ struct Rand { |
| 32 | var bytes_left = r.get_bytes_aligned(buf, count); | 32 | var bytes_left = r.get_bytes_aligned(buf, count); |
| 33 | if (bytes_left > 0) { | 33 | if (bytes_left > 0) { |
| 34 | var rand_val_array : [u8; #sizeof(u32)]; | 34 | var rand_val_array : [u8; #sizeof(u32)]; |
| 35 | *(rand_val_array.ptr as &u32) = r.get(); | 35 | *(rand_val_array.ptr as &u32) = r.get_u32(); |
| 36 | while (bytes_left > 0) { | 36 | while (bytes_left > 0) { |
| 37 | buf[count - bytes_left] = rand_val_array[#sizeof(u32) - bytes_left]; | 37 | buf[count - bytes_left] = rand_val_array[#sizeof(u32) - bytes_left]; |
| 38 | bytes_left -= 1; | 38 | bytes_left -= 1; |
| ... | @@ -55,6 +55,9 @@ struct Rand { | ... | @@ -55,6 +55,9 @@ struct Rand { |
| 55 | return start + (rand_val % range); | 55 | return start + (rand_val % range); |
| 56 | } | 56 | } |
| 57 | } | 57 | } |
| | 58 | // TODO detect simple constant in while loop and no breaks and turn it into unreachable |
| | 59 | // type. then we can remove this unreachable. |
| | 60 | unreachable; |
| 58 | } | 61 | } |
| 59 | | 62 | |
| 60 | fn generate_numbers(r: &Rand) { | 63 | fn generate_numbers(r: &Rand) { |
| ... | @@ -77,7 +80,7 @@ struct Rand { | ... | @@ -77,7 +80,7 @@ struct Rand { |
| 77 | var bytes_left = count; | 80 | var bytes_left = count; |
| 78 | var buf_ptr = buf; | 81 | var buf_ptr = buf; |
| 79 | while (bytes_left > 4) { | 82 | while (bytes_left > 4) { |
| 80 | *(buf_ptr as &u32) = r.get(); | 83 | *(buf_ptr as &u32) = r.get_u32(); |
| 81 | bytes_left -= #sizeof(u32); | 84 | bytes_left -= #sizeof(u32); |
| 82 | buf_ptr += #sizeof(u32); | 85 | buf_ptr += #sizeof(u32); |
| 83 | } | 86 | } |