about summary refs log tree commit diff
diff options
context:
space:
mode:
authorAmanieu d'Antras <amanieu@gmail.com>2018-10-30 21:36:43 +0000
committerAmanieu d'Antras <amanieu@gmail.com>2018-11-06 17:21:13 +0000
commitde027b64f1052cbeed911b5e98aab8803cfe302e (patch)
tree7626cebd7f6bb3ae376900c16558be812662ce1e
parent94f3ce9def8659e281b398c1582036f181d62f44 (diff)
downloadrust-de027b64f1052cbeed911b5e98aab8803cfe302e.tar.gz
rust-de027b64f1052cbeed911b5e98aab8803cfe302e.zip
API changes as discussed in the comments
-rw-r--r--src/libcore/alloc.rs23
1 files changed, 6 insertions, 17 deletions
diff --git a/src/libcore/alloc.rs b/src/libcore/alloc.rs
index bc2860a5a2f..a5cc58f0c92 100644
--- a/src/libcore/alloc.rs
+++ b/src/libcore/alloc.rs
@@ -164,15 +164,13 @@ impl Layout {
     /// alignment. In other words, if `K` has size 16, `K.align_to(32)`
     /// will *still* have size 16.
     ///
-    /// # Panics
-    ///
-    /// Panics if the combination of `self.size()` and the given `align`
-    /// violates the conditions listed in
+    /// Returns an error if the combination of `self.size()` and the given
+    /// `align` violates the conditions listed in
     /// [`Layout::from_size_align`](#method.from_size_align).
     #[unstable(feature = "allocator_api", issue = "32838")]
     #[inline]
-    pub fn align_to(&self, align: usize) -> Self {
-        Layout::from_size_align(self.size(), cmp::max(self.align(), align)).unwrap()
+    pub fn align_to(&self, align: usize) -> Result<Self, LayoutErr> {
+        Layout::from_size_align(self.size(), cmp::max(self.align(), align))
     }
 
     /// Returns the amount of padding we must insert after `self`
@@ -296,23 +294,14 @@ impl Layout {
     /// padding is inserted, the alignment of `next` is irrelevant,
     /// and is not incorporated *at all* into the resulting layout.
     ///
-    /// Returns `(k, offset)`, where `k` is layout of the concatenated
-    /// record and `offset` is the relative location, in bytes, of the
-    /// start of the `next` embedded within the concatenated record
-    /// (assuming that the record itself starts at offset 0).
-    ///
-    /// (The `offset` is always the same as `self.size()`; we use this
-    ///  signature out of convenience in matching the signature of
-    ///  `extend`.)
-    ///
     /// On arithmetic overflow, returns `LayoutErr`.
     #[unstable(feature = "allocator_api", issue = "32838")]
     #[inline]
-    pub fn extend_packed(&self, next: Self) -> Result<(Self, usize), LayoutErr> {
+    pub fn extend_packed(&self, next: Self) -> Result<Self, LayoutErr> {
         let new_size = self.size().checked_add(next.size())
             .ok_or(LayoutErr { private: () })?;
         let layout = Layout::from_size_align(new_size, self.align())?;
-        Ok((layout, self.size()))
+        Ok(layout)
     }
 
     /// Creates a layout describing the record for a `[T; n]`.