@@ -43,7 +43,7 @@ export ptr;
43
43
*/
44
44
45
45
tag t<T > {
46
- t ( { base: * T , size: uint, rsrc: @dtor_res} ) ;
46
+ t ( { base: * mutable T , size: uint, rsrc: @dtor_res} ) ;
47
47
}
48
48
49
49
resource dtor_res( dtor: option:: t<fn @( ) >) {
@@ -57,14 +57,15 @@ resource dtor_res(dtor: option::t<fn@()>) {
57
57
Section: Introduction forms
58
58
*/
59
59
60
- unsafe fn create < T > ( base : * T , size : uint ) -> t < T > {
60
+ unsafe fn create < T > ( base : * mutable T , size : uint ) -> t < T > {
61
61
ret t( { base: base,
62
62
size: size,
63
63
rsrc: @dtor_res ( option:: none)
64
64
} ) ;
65
65
}
66
66
67
- unsafe fn create_with_dtor < T > ( base : * T , size : uint , dtor : fn @( ) ) -> t < T > {
67
+ unsafe fn create_with_dtor < T > ( base : * mutable T , size : uint , dtor : fn @( ) )
68
+ -> t < T > {
68
69
ret t( { base: base,
69
70
size: size,
70
71
rsrc: @dtor_res ( option:: some ( dtor) )
@@ -77,12 +78,12 @@ unsafe fn create_with_dtor<T>(base: *T, size: uint, dtor: fn@()) -> t<T> {
77
78
78
79
fn get < copy T > ( t : t < T > , ofs : uint ) -> T {
79
80
assert ofs < ( * t) . size ;
80
- ret unsafe { * ptr:: offset ( ( * t) . base , ofs) } ;
81
+ ret unsafe { * ptr:: mut_offset ( ( * t) . base , ofs) } ;
81
82
}
82
83
83
84
fn set < copy T > ( t : t < T > , ofs : uint , v : T ) {
84
85
assert ofs < ( * t) . size ;
85
- unsafe { * ( ptr:: offset ( ( * t) . base , ofs) as * mutable T ) = v } ;
86
+ unsafe { * ptr:: mut_offset ( ( * t) . base , ofs) = v } ;
86
87
}
87
88
88
89
/*
@@ -93,6 +94,6 @@ fn size<T>(t: t<T>) -> uint {
93
94
ret ( * t) . size ;
94
95
}
95
96
96
- unsafe fn ptr < T > ( t : t < T > ) -> * T {
97
+ unsafe fn ptr < T > ( t : t < T > ) -> * mutable T {
97
98
ret ( * t) . base ;
98
99
}
0 commit comments