diff --git a/src/libcore/str.rs b/src/libcore/str.rs index 7e5778f04454..888d992321cd 100644 --- a/src/libcore/str.rs +++ b/src/libcore/str.rs @@ -115,11 +115,6 @@ export StrSlice, UniqueStr; -#[abi = "cdecl"] -extern mod rustrt { - fn str_reserve_shared(&ss: ~str, nn: libc::size_t); -} - /* Section: Creating a string */ @@ -1818,8 +1813,9 @@ pure fn as_buf(s: &str, f: fn(*u8, uint) -> T) -> T { * * n - The number of bytes to reserve space for */ fn reserve(&s: ~str, n: uint) { - if capacity(s) < n { - rustrt::str_reserve_shared(s, n as size_t); + unsafe { + let v: *mut ~[u8] = ::unsafe::reinterpret_cast(ptr::addr_of(s)); + vec::reserve(*v, n + 1); } } diff --git a/src/rt/rust_builtin.cpp b/src/rt/rust_builtin.cpp index a662141bf628..f9da1c91cf0d 100644 --- a/src/rt/rust_builtin.cpp +++ b/src/rt/rust_builtin.cpp @@ -141,13 +141,6 @@ vec_reserve_shared(type_desc* ty, rust_vec_box** vp, reserve_vec_exact(task, vp, n_elts * ty->size); } -extern "C" CDECL void -str_reserve_shared(rust_vec_box** sp, - size_t n_elts) { - rust_task *task = rust_get_current_task(); - reserve_vec_exact(task, sp, n_elts + 1); -} - extern "C" CDECL rust_vec* rand_seed() { size_t size = sizeof(ub4) * RANDSIZ; diff --git a/src/rt/rustrt.def.in b/src/rt/rustrt.def.in index 191ebe6f0bea..8c550833d1c3 100644 --- a/src/rt/rustrt.def.in +++ b/src/rt/rustrt.def.in @@ -61,7 +61,6 @@ shape_log_str start_task vec_reserve_shared_actual vec_reserve_shared -str_reserve_shared task_clear_event_reject task_wait_event task_signal_event