about summary refs log tree commit diff
path: root/src/libstd
diff options
context:
space:
mode:
authorkennytm <kennytm@gmail.com>2018-11-13 13:03:22 +0800
committerkennytm <kennytm@gmail.com>2018-11-13 19:20:57 +0800
commit99986a5a057a02fb37e41c3e4fe20db1f75aa6cc (patch)
treedcbf06fee8f815bd3a1bae86b246ec0b98e9daa4 /src/libstd
parentc246a2981383e47ab667e788d8f0a0c65bae4c91 (diff)
parent075983c70ba20f31fc1279dacae6d6fcb8bc9cad (diff)
downloadrust-99986a5a057a02fb37e41c3e4fe20db1f75aa6cc.tar.gz
rust-99986a5a057a02fb37e41c3e4fe20db1f75aa6cc.zip
Rollup merge of #55889 - RalfJung:global-alloc, r=alexcrichton
global allocators: add a few comments

These comments answer some questions that came up when I tried to understand how the control flow works for the global allocator, `Global` and `System`.

r? @alexcrichton
Diffstat (limited to 'src/libstd')
-rw-r--r--src/libstd/alloc.rs5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/libstd/alloc.rs b/src/libstd/alloc.rs
index 485b2ffe197..9c057396470 100644
--- a/src/libstd/alloc.rs
+++ b/src/libstd/alloc.rs
@@ -142,6 +142,7 @@ pub use alloc_crate::alloc::*;
 #[derive(Debug, Copy, Clone)]
 pub struct System;
 
+// The Alloc impl just forwards to the GlobalAlloc impl, which is in `std::sys::*::alloc`.
 #[unstable(feature = "allocator_api", issue = "32838")]
 unsafe impl Alloc for System {
     #[inline]
@@ -226,6 +227,10 @@ pub fn rust_oom(layout: Layout) -> ! {
 #[unstable(feature = "alloc_internals", issue = "0")]
 pub mod __default_lib_allocator {
     use super::{System, Layout, GlobalAlloc};
+    // These magic symbol names are used as a fallback for implementing the
+    // `__rust_alloc` etc symbols (see `src/liballoc/alloc.rs) when there is
+    // no `#[global_allocator]` attribute.
+
     // for symbol names src/librustc/middle/allocator.rs
     // for signatures src/librustc_allocator/lib.rs