Skip to content

Commit df712ab

Browse files
committed
libcore: Make %? use the visitor, not shape glue
1 parent 45f5f8e commit df712ab

File tree

1 file changed

+4
-7
lines changed

1 file changed

+4
-7
lines changed

src/libcore/sys.rs

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -32,11 +32,6 @@ struct Closure {
3232
env: *(),
3333
}
3434

35-
#[abi = "cdecl"]
36-
extern mod rustrt {
37-
pure fn shape_log_str(t: *sys::TypeDesc, data: *()) -> ~str;
38-
}
39-
4035
#[abi = "rust-intrinsic"]
4136
extern mod rusti {
4237
fn get_tydesc<T>() -> *();
@@ -104,8 +99,10 @@ pure fn refcount<T>(+t: @T) -> uint {
10499

105100
pure fn log_str<T>(t: T) -> ~str {
106101
unsafe {
107-
let data_ptr: *() = unsafe::reinterpret_cast(&ptr::addr_of(t));
108-
rustrt::shape_log_str(get_type_desc::<T>(), data_ptr)
102+
let buffer = io::mem_buffer();
103+
let writer = io::mem_buffer_writer(buffer);
104+
repr::write_repr(writer, &t);
105+
return io::mem_buffer_str(buffer); // XXX: Extra malloc and copy.
109106
}
110107
}
111108

0 commit comments

Comments
 (0)