@@ -106,13 +106,13 @@ fn compare_and_swap(address: &mut int, oldval: int, newval: int) -> bool {
106
106
****************************************************************************/
107
107
108
108
struct ArcData < T > {
109
- mut count : libc:: intptr_t ,
109
+ count : libc:: intptr_t ,
110
110
// FIXME(#3224) should be able to make this non-option to save memory
111
- mut data : Option < T > ,
111
+ data : Option < T > ,
112
112
}
113
113
114
114
struct ArcDestruct < T > {
115
- mut data : * libc:: c_void ,
115
+ data : * libc:: c_void ,
116
116
}
117
117
118
118
#[ unsafe_destructor]
@@ -122,7 +122,7 @@ impl<T> Drop for ArcDestruct<T>{
122
122
do task:: unkillable {
123
123
let data : ~ArcData <T > = cast:: reinterpret_cast ( & self . data ) ;
124
124
let new_count =
125
- intrinsics:: atomic_xsub ( & mut data. count , 1 ) - 1 ;
125
+ intrinsics:: atomic_xsub ( cast :: transmute_mut ( & data. count ) , 1 ) - 1 ;
126
126
assert ! ( new_count >= 0 ) ;
127
127
if new_count == 0 {
128
128
// drop glue takes over.
@@ -186,7 +186,7 @@ pub unsafe fn clone_shared_mutable_state<T:Owned>(rc: &SharedMutableState<T>)
186
186
-> SharedMutableState < T > {
187
187
unsafe {
188
188
let ptr: ~ArcData < T > = cast:: reinterpret_cast ( & ( * rc) . data ) ;
189
- let new_count = intrinsics:: atomic_xadd ( & mut ptr. count , 1 ) + 1 ;
189
+ let new_count = intrinsics:: atomic_xadd ( cast :: transmute_mut ( & ptr. count ) , 1 ) + 1 ;
190
190
assert ! ( new_count >= 2 ) ;
191
191
cast:: forget ( ptr) ;
192
192
}
@@ -252,15 +252,15 @@ pub impl LittleLock {
252
252
}
253
253
}
254
254
255
- struct ExData < T > { lock : LittleLock , mut failed : bool , mut data : T , }
255
+ struct ExData < T > { lock : LittleLock , failed : bool , data : T , }
256
256
/**
257
257
* An arc over mutable data that is protected by a lock. For library use only.
258
258
*/
259
259
pub struct Exclusive < T > { x : SharedMutableState < ExData < T > > }
260
260
261
261
pub fn exclusive < T : Owned > ( user_data : T ) -> Exclusive < T > {
262
262
let data = ExData {
263
- lock : LittleLock ( ) , mut failed : false , mut data : user_data
263
+ lock : LittleLock ( ) , failed : false , data : user_data
264
264
} ;
265
265
Exclusive { x : unsafe { shared_mutable_state ( data) } }
266
266
}
0 commit comments