From fea985a0b5008bc2f441866a80c0e3a16592eaab Mon Sep 17 00:00:00 2001 From: Daniel Micay Date: Tue, 28 Oct 2014 17:06:06 -0400 Subject: bubble up out-of-memory errors from liballoc This makes the low-level allocation API suitable for use cases where out-of-memory conditions need to be handled. Closes #18292 [breaking-change] --- src/libstd/c_vec.rs | 2 +- src/libstd/collections/hashmap/table.rs | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) (limited to 'src/libstd') diff --git a/src/libstd/c_vec.rs b/src/libstd/c_vec.rs index fd605bb2b5c..771184df53d 100644 --- a/src/libstd/c_vec.rs +++ b/src/libstd/c_vec.rs @@ -170,7 +170,7 @@ mod tests { fn malloc(n: uint) -> CVec { unsafe { let mem = libc::malloc(n as libc::size_t); - if mem.is_null() { panic!("out of memory") } + if mem.is_null() { ::alloc::oom() } CVec::new_with_dtor(mem as *mut u8, n, proc() { libc::free(mem as *mut libc::c_void); }) diff --git a/src/libstd/collections/hashmap/table.rs b/src/libstd/collections/hashmap/table.rs index faff68c75ff..4d73029b7b0 100644 --- a/src/libstd/collections/hashmap/table.rs +++ b/src/libstd/collections/hashmap/table.rs @@ -607,6 +607,7 @@ impl RawTable { "capacity overflow"); let buffer = allocate(size, malloc_alignment); + if buffer.is_null() { ::alloc::oom() } let hashes = buffer.offset(hash_offset as int) as *mut u64; -- cgit 1.4.1-3-g733a5