@@ -43,20 +43,27 @@ use core::cast::{transmute, transmute_mut_region};
4343use core:: cast;
4444use core:: libc:: size_t;
4545use core:: ptr;
46- use core:: sys:: TypeDesc ;
4746use core:: sys;
4847use core:: uint;
4948use core:: vec;
5049use core:: unstable:: intrinsics;
5150
51+ #[ cfg( stage0) ]
52+ use intrinsic:: { get_tydesc, TyDesc } ;
53+ #[ cfg( not( stage0) ) ]
54+ use core:: unstable:: intrinsics:: { get_tydesc, TyDesc } ;
55+
5256pub mod rustrt {
5357 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 } ;
5562
5663 pub extern {
5764 #[ rust_stack]
5865 unsafe fn rust_call_tydesc_glue ( root : * u8 ,
59- tydesc : * TypeDesc ,
66+ tydesc : * TyDesc ,
6067 field : size_t ) ;
6168 }
6269}
@@ -136,7 +143,7 @@ unsafe fn destroy_chunk(chunk: &Chunk) {
136143 let ( tydesc, is_done) = un_bitpack_tydesc_ptr ( * tydesc_data) ;
137144 let ( size, align) = ( ( * tydesc) . size , ( * tydesc) . align ) ;
138145
139- let after_tydesc = idx + sys:: size_of :: < * TypeDesc > ( ) ;
146+ let after_tydesc = idx + sys:: size_of :: < * TyDesc > ( ) ;
140147
141148 let start = round_up_to ( after_tydesc, align) ;
142149
@@ -148,7 +155,7 @@ unsafe fn destroy_chunk(chunk: &Chunk) {
148155 }
149156
150157 // 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 > ( ) ) ;
152159 }
153160}
154161
@@ -157,12 +164,12 @@ unsafe fn destroy_chunk(chunk: &Chunk) {
157164// is necessary in order to properly do cleanup if a failure occurs
158165// during an initializer.
159166#[ 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 {
161168 let p_bits: uint = transmute ( p) ;
162169 p_bits | ( is_done as uint )
163170}
164171#[ inline]
165- unsafe fn un_bitpack_tydesc_ptr ( p : uint ) -> ( * TypeDesc , bool ) {
172+ unsafe fn un_bitpack_tydesc_ptr ( p : uint ) -> ( * TyDesc , bool ) {
166173 ( transmute ( p & !1 ) , p & 1 == 1 )
167174}
168175
@@ -202,7 +209,7 @@ impl Arena {
202209 #[ inline]
203210 fn alloc_pod < ' a , T > ( & ' a mut self , op : & fn ( ) -> T ) -> & ' a T {
204211 unsafe {
205- let tydesc = sys :: get_type_desc :: < T > ( ) ;
212+ let tydesc = get_tydesc :: < T > ( ) ;
206213 let ptr = self . alloc_pod_inner ( ( * tydesc) . size , ( * tydesc) . align ) ;
207214 let ptr: * mut T = transmute ( ptr) ;
208215 intrinsics:: move_val_init ( & mut ( * ptr) , op ( ) ) ;
@@ -230,13 +237,13 @@ impl Arena {
230237 let head = transmute_mut_region ( & mut self . head ) ;
231238
232239 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 > ( ) ;
234241 let start = round_up_to ( after_tydesc, align) ;
235242 let end = start + n_bytes;
236243 if end > at_vec:: capacity ( head. data ) {
237244 return self . alloc_nonpod_grow ( n_bytes, align) ;
238245 }
239- head. fill = round_up_to ( end, sys:: pref_align_of :: < * TypeDesc > ( ) ) ;
246+ head. fill = round_up_to ( end, sys:: pref_align_of :: < * TyDesc > ( ) ) ;
240247
241248 //debug!("idx = %u, size = %u, align = %u, fill = %u",
242249 // start, n_bytes, align, head.fill);
@@ -249,7 +256,7 @@ impl Arena {
249256 #[ inline]
250257 fn alloc_nonpod < ' a , T > ( & ' a mut self , op : & fn ( ) -> T ) -> & ' a T {
251258 unsafe {
252- let tydesc = sys :: get_type_desc :: < T > ( ) ;
259+ let tydesc = get_tydesc :: < T > ( ) ;
253260 let ( ty_ptr, ptr) =
254261 self . alloc_nonpod_inner ( ( * tydesc) . size , ( * tydesc) . align ) ;
255262 let ty_ptr: * mut uint = transmute ( ty_ptr) ;
0 commit comments