jemallocator/jemalloc_sys/fn.xallocx.html

33 lines
6.4 KiB
HTML
Raw Permalink Normal View History

<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `xallocx` fn in crate `jemalloc_sys`."><meta name="keywords" content="rust, rustlang, rust-lang, xallocx"><title>jemalloc_sys::xallocx - Rust</title><link rel="stylesheet" type="text/css" href="../normalize.css"><link rel="stylesheet" type="text/css" href="../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" type="text/css" href="../dark.css"><link rel="stylesheet" type="text/css" href="../light.css" id="themeStyle"><script src="../storage.js"></script><noscript><link rel="stylesheet" href="../noscript.css"></noscript><link rel="shortcut icon" href="../favicon.ico"><style type="text/css">#crate-search{background-image:url("../down-arrow.svg");}</style></head><body class="rustdoc fn"><!--[if lte IE 8]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu">&#9776;</div><a href='../jemalloc_sys/index.html'><div class='logo-container'><img src='../rust-logo.png' alt='logo'></div></a><div class="sidebar-elems"><p class='location'><a href='index.html'>jemalloc_sys</a></p><script>window.sidebarCurrent = {name: 'xallocx', ty: 'fn', relpath: ''};</script><script defer src="sidebar-items.js"></script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!"><img src="../brush.svg" width="18" alt="Pick another theme!"></button><div id="theme-choices"></div></div><script src="../theme.js"></script><nav class="sub"><form class="search-form js-only"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"></div><a id="settings-menu" href="../settings.html"><img src="../wheel.svg" width="18" alt="Change settings"></a></div></form></nav><section id="main" class="content"><h1 class='fqn'><span class='out-of-band'><span id='render-detail'><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class='inner'>&#x2212;</span>]</a></span><a class='srclink' href='../src/jemalloc_sys/lib.rs.html#348' title='goto source code'>[src]</a></span><span class='in-band'>Function <a href='index.html'>jemalloc_sys</a>::<wbr><a class="fn" href=''>xallocx</a></span></h1><pre class='rust fn'>pub unsafe extern &quot;C&quot; fn xallocx(<br>&nbsp;&nbsp;&nbsp;&nbsp;ptr: *mut <a class="enum" href="https://doc.rust-lang.org/nightly/core/ffi/enum.c_void.html" title="enum core::ffi::c_void">c_void</a>, <br>&nbsp;&nbsp;&nbsp;&nbsp;size: <a class="type" href="../libc/unix/type.size_t.html" title="type libc::unix::size_t">size_t</a>, <br>&nbsp;&nbsp;&nbsp;&nbsp;extra: <a class="type" href="../libc/unix/type.size_t.html" title="type libc::unix::size_t">size_t</a>, <br>&nbsp;&nbsp;&nbsp;&nbsp;flags: <a class="type" href="../libc/unix/type.c_int.html" title="type libc::unix::c_int">c_int</a><br>) -&gt; <a class="type" href="../libc/unix/type.size_t.html" title="type libc::unix::size_t">size_t</a></pre><div class='docblock'><p>Resizes the previously-allocated memory region referenced by <code>ptr</code> <em>in
place</em> to be at least <code>size</code> bytes, returning the real size of the
allocation.</p>
<p>Deallocates the old object pointed to by <code>ptr</code> and sets <code>ptr</code> to a new
object that has the size returned; the old a new objects share the same
base address. The contents of the new object are the same as that of the
old object prior to deallocation, up to the lesser of the new and old
sizes.</p>
<p>If <code>extra</code> is non-zero, an attempt is made to resize the allocation to
be at least <code>size + extra</code> bytes. Inability to allocate the <code>extra</code>
bytes will not by itself result in failure to resize.</p>
<p>The memory in the new object beyond the size of the old object is
obtained according to <code>flags</code> (it might be uninitialized).</p>
<h1 id="errors" class="section-header"><a href="#errors">Errors</a></h1>
<p>If the allocation cannot be adequately grown in place up to <code>size</code>, the
size returned is smaller than <code>size</code>.</p>
<p>Note:</p>
<ul>
<li>the size value returned can be larger than the size requested during
allocation</li>
<li>when shrinking an allocation, use the size returned to determine
whether the allocation was shrunk sufficiently or not.</li>
</ul>
<h1 id="safety" class="section-header"><a href="#safety">Safety</a></h1>
<p>The behavior is <em>undefined</em> if:</p>
<ul>
<li><code>size == 0</code>, or</li>
<li><code>size + extra &gt; size_t::max_value()</code>, or</li>
<li><code>ptr</code> does not match a pointer earlier returned by the memory
allocation functions of this crate, or</li>
<li>the memory region referenced by <code>ptr</code> has been deallocated.</li>
</ul>
</div></section><section id="search" class="content hidden"></section><section class="footer"></section><aside id="help" class="hidden"><div><h1 class="hidden">Help</h1><div class="shortcuts"><h2>Keyboard Shortcuts</h2><dl><dt><kbd>?</kbd></dt><dd>Show this help dialog</dd><dt><kbd>S</kbd></dt><dd>Focus the search field</dd><dt><kbd></kbd></dt><dd>Move up in search results</dd><dt><kbd></kbd></dt><dd>Move down in search results</dd><dt><kbd></kbd></dt><dd>Switch tab</dd><dt><kbd>&#9166;</kbd></dt><dd>Go to active search result</dd><dt><kbd>+</kbd></dt><dd>Expand all sections</dd><dt><kbd>-</kbd></dt><dd>Collapse all sections</dd></dl></div><div class="infos"><h2>Search Tricks</h2><p>Prefix searches with a type followed by a colon (e.g., <code>fn:</code>) to restrict the search to a given type.</p><p>Accepted types are: <code>fn</code>, <code>mod</code>, <code>struct</code>, <code>enum</code>, <code>trait</code>, <code>type</code>, <code>macro</code>, and <code>const</code>.</p><p>Search functions by type signature (e.g., <code>vec -> usize</code> or <code>* -> vec</code>)</p><p>Search multiple things at once by splitting your query with comma (e.g., <code>str,u8</code> or <code>String,struct:Vec,test</code>)</p></div></div></aside><script>window.rootPath = "../";window.currentCrate = "jemalloc_sys";</script><script src="../aliases.js"></script><script src="../main.js"></script><script defer src="../search-index.js"></script></body></html>