about summary refs log tree commit diff
path: root/src/libsync
diff options
context:
space:
mode:
authorDaniel Micay <danielmicay@gmail.com>2014-10-28 17:06:06 -0400
committerDaniel Micay <danielmicay@gmail.com>2014-11-01 19:23:20 -0400
commitfea985a0b5008bc2f441866a80c0e3a16592eaab (patch)
treee612e8ff8f24654005783cf9628f7c37fbfcd59c /src/libsync
parent39f90aead4ad52de1d2c50418da4d66320233d8e (diff)
downloadrust-fea985a0b5008bc2f441866a80c0e3a16592eaab.tar.gz
rust-fea985a0b5008bc2f441866a80c0e3a16592eaab.zip
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]
Diffstat (limited to 'src/libsync')
-rw-r--r--src/libsync/deque.rs1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/libsync/deque.rs b/src/libsync/deque.rs
index 11b8b974dcf..ae55642672d 100644
--- a/src/libsync/deque.rs
+++ b/src/libsync/deque.rs
@@ -353,6 +353,7 @@ impl<T: Send> Buffer<T> {
     unsafe fn new(log_size: uint) -> Buffer<T> {
         let size = buffer_alloc_size::<T>(log_size);
         let buffer = allocate(size, min_align_of::<T>());
+        if buffer.is_null() { ::alloc::oom() }
         Buffer {
             storage: buffer as *const T,
             log_size: log_size,