@@ -43,20 +43,27 @@ use core::cast::{transmute, transmute_mut_region};
43
43
use core:: cast;
44
44
use core:: libc:: size_t;
45
45
use core:: ptr;
46
- use core:: sys:: TypeDesc ;
47
46
use core:: sys;
48
47
use core:: uint;
49
48
use core:: vec;
50
49
use core:: unstable:: intrinsics;
51
50
51
+ #[ cfg( stage0) ]
52
+ use intrinsic:: { get_tydesc, TyDesc } ;
53
+ #[ cfg( not( stage0) ) ]
54
+ use core:: unstable:: intrinsics:: { get_tydesc, TyDesc } ;
55
+
52
56
pub mod rustrt {
53
57
use core:: libc:: size_t;
54
- use core:: sys:: TypeDesc ;
58
+ #[ cfg( stage0) ]
59
+ use intrinsic:: { TyDesc } ;
60
+ #[ cfg( not( stage0) ) ]
61
+ use core:: unstable:: intrinsics:: { TyDesc } ;
55
62
56
63
pub extern {
57
64
#[ rust_stack]
58
65
unsafe fn rust_call_tydesc_glue ( root : * u8 ,
59
- tydesc : * TypeDesc ,
66
+ tydesc : * TyDesc ,
60
67
field : size_t ) ;
61
68
}
62
69
}
@@ -136,7 +143,7 @@ unsafe fn destroy_chunk(chunk: &Chunk) {
136
143
let ( tydesc, is_done) = un_bitpack_tydesc_ptr ( * tydesc_data) ;
137
144
let ( size, align) = ( ( * tydesc) . size , ( * tydesc) . align ) ;
138
145
139
- let after_tydesc = idx + sys:: size_of :: < * TypeDesc > ( ) ;
146
+ let after_tydesc = idx + sys:: size_of :: < * TyDesc > ( ) ;
140
147
141
148
let start = round_up_to ( after_tydesc, align) ;
142
149
@@ -148,7 +155,7 @@ unsafe fn destroy_chunk(chunk: &Chunk) {
148
155
}
149
156
150
157
// Find where the next tydesc lives
151
- idx = round_up_to ( start + size, sys:: pref_align_of :: < * TypeDesc > ( ) ) ;
158
+ idx = round_up_to ( start + size, sys:: pref_align_of :: < * TyDesc > ( ) ) ;
152
159
}
153
160
}
154
161
@@ -157,12 +164,12 @@ unsafe fn destroy_chunk(chunk: &Chunk) {
157
164
// is necessary in order to properly do cleanup if a failure occurs
158
165
// during an initializer.
159
166
#[ inline]
160
- unsafe fn bitpack_tydesc_ptr ( p : * TypeDesc , is_done : bool ) -> uint {
167
+ unsafe fn bitpack_tydesc_ptr ( p : * TyDesc , is_done : bool ) -> uint {
161
168
let p_bits: uint = transmute ( p) ;
162
169
p_bits | ( is_done as uint )
163
170
}
164
171
#[ inline]
165
- unsafe fn un_bitpack_tydesc_ptr ( p : uint ) -> ( * TypeDesc , bool ) {
172
+ unsafe fn un_bitpack_tydesc_ptr ( p : uint ) -> ( * TyDesc , bool ) {
166
173
( transmute ( p & !1 ) , p & 1 == 1 )
167
174
}
168
175
@@ -202,7 +209,7 @@ impl Arena {
202
209
#[ inline]
203
210
fn alloc_pod < ' a , T > ( & ' a mut self , op : & fn ( ) -> T ) -> & ' a T {
204
211
unsafe {
205
- let tydesc = sys :: get_type_desc :: < T > ( ) ;
212
+ let tydesc = get_tydesc :: < T > ( ) ;
206
213
let ptr = self . alloc_pod_inner ( ( * tydesc) . size , ( * tydesc) . align ) ;
207
214
let ptr: * mut T = transmute ( ptr) ;
208
215
intrinsics:: move_val_init ( & mut ( * ptr) , op ( ) ) ;
@@ -230,13 +237,13 @@ impl Arena {
230
237
let head = transmute_mut_region ( & mut self . head ) ;
231
238
232
239
let tydesc_start = head. fill ;
233
- let after_tydesc = head. fill + sys:: size_of :: < * TypeDesc > ( ) ;
240
+ let after_tydesc = head. fill + sys:: size_of :: < * TyDesc > ( ) ;
234
241
let start = round_up_to ( after_tydesc, align) ;
235
242
let end = start + n_bytes;
236
243
if end > at_vec:: capacity ( head. data ) {
237
244
return self . alloc_nonpod_grow ( n_bytes, align) ;
238
245
}
239
- head. fill = round_up_to ( end, sys:: pref_align_of :: < * TypeDesc > ( ) ) ;
246
+ head. fill = round_up_to ( end, sys:: pref_align_of :: < * TyDesc > ( ) ) ;
240
247
241
248
//debug!("idx = %u, size = %u, align = %u, fill = %u",
242
249
// start, n_bytes, align, head.fill);
@@ -249,7 +256,7 @@ impl Arena {
249
256
#[ inline]
250
257
fn alloc_nonpod < ' a , T > ( & ' a mut self , op : & fn ( ) -> T ) -> & ' a T {
251
258
unsafe {
252
- let tydesc = sys :: get_type_desc :: < T > ( ) ;
259
+ let tydesc = get_tydesc :: < T > ( ) ;
253
260
let ( ty_ptr, ptr) =
254
261
self . alloc_nonpod_inner ( ( * tydesc) . size , ( * tydesc) . align ) ;
255
262
let ty_ptr: * mut uint = transmute ( ty_ptr) ;
0 commit comments