Skip to content

Commit a831726

Browse files
committed
Fix region-related unsafety in arc::get's signature
1 parent 3303116 commit a831726

File tree

2 files changed

+5
-5
lines changed

2 files changed

+5
-5
lines changed

src/libcore/unsafe.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -203,8 +203,8 @@ unsafe fn shared_mutable_state<T: send>(+data: T) -> SharedMutableState<T> {
203203
}
204204
205205
#[inline(always)]
206-
unsafe fn get_shared_mutable_state<T: send>(rc: &SharedMutableState<T>)
207-
-> &mut T {
206+
unsafe fn get_shared_mutable_state<T: send>(rc: &a/SharedMutableState<T>)
207+
-> &a/mut T {
208208
unsafe {
209209
let ptr: ~ArcData<T> = unsafe::reinterpret_cast((*rc).data);
210210
assert ptr.count > 0;
@@ -215,8 +215,8 @@ unsafe fn get_shared_mutable_state<T: send>(rc: &SharedMutableState<T>)
215215
}
216216
}
217217
#[inline(always)]
218-
unsafe fn get_shared_immutable_state<T: send>(rc: &SharedMutableState<T>)
219-
-> &T {
218+
unsafe fn get_shared_immutable_state<T: send>(rc: &a/SharedMutableState<T>)
219+
-> &a/T {
220220
unsafe {
221221
let ptr: ~ArcData<T> = unsafe::reinterpret_cast((*rc).data);
222222
assert ptr.count > 0;

src/libstd/arc.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ fn arc<T: const send>(+data: T) -> ARC<T> {
8181
* Access the underlying data in an atomically reference counted
8282
* wrapper.
8383
*/
84-
fn get<T: const send>(rc: &ARC<T>) -> &T {
84+
fn get<T: const send>(rc: &a/ARC<T>) -> &a/T {
8585
unsafe { get_shared_immutable_state(&rc.x) }
8686
}
8787

0 commit comments

Comments
 (0)