The response has been limited to 50k tokens of the smallest files in the repo. You can remove this limitation by removing the max tokens filter.
├── .gitattributes
├── .gitignore
├── CMakeLists.txt
├── LICENSE
├── SECURITY.md
├── azure-pipelines.yml
├── bin
    ├── mimalloc-redirect-arm64.dll
    ├── mimalloc-redirect-arm64.lib
    ├── mimalloc-redirect-arm64ec.dll
    ├── mimalloc-redirect-arm64ec.lib
    ├── mimalloc-redirect.dll
    ├── mimalloc-redirect.lib
    ├── mimalloc-redirect32.dll
    ├── mimalloc-redirect32.lib
    ├── minject-arm64.exe
    ├── minject.exe
    ├── minject32.exe
    └── readme.md
├── cmake
    ├── JoinPaths.cmake
    ├── mimalloc-config-version.cmake
    └── mimalloc-config.cmake
├── contrib
    ├── docker
    │   ├── alpine-arm32v7
    │   │   └── Dockerfile
    │   ├── alpine-x86
    │   │   └── Dockerfile
    │   ├── alpine
    │   │   └── Dockerfile
    │   ├── manylinux-x64
    │   │   └── Dockerfile
    │   └── readme.md
    └── vcpkg
    │   ├── portfile.cmake
    │   ├── readme.md
    │   ├── usage
    │   ├── vcpkg-cmake-wrapper.cmake
    │   └── vcpkg.json
├── doc
    ├── bench-2020
    │   ├── bench-c5-18xlarge-2020-01-20-a.svg
    │   ├── bench-c5-18xlarge-2020-01-20-b.svg
    │   ├── bench-c5-18xlarge-2020-01-20-rss-a.svg
    │   ├── bench-c5-18xlarge-2020-01-20-rss-b.svg
    │   ├── bench-r5a-1.svg
    │   ├── bench-r5a-12xlarge-2020-01-16-a.svg
    │   ├── bench-r5a-12xlarge-2020-01-16-b.svg
    │   ├── bench-r5a-2.svg
    │   ├── bench-r5a-rss-1.svg
    │   ├── bench-r5a-rss-2.svg
    │   ├── bench-spec-rss.svg
    │   ├── bench-spec.svg
    │   ├── bench-z4-1.svg
    │   ├── bench-z4-2.svg
    │   ├── bench-z4-rss-1.svg
    │   └── bench-z4-rss-2.svg
    ├── bench-2021
    │   ├── bench-amd5950x-2021-01-30-a.svg
    │   ├── bench-amd5950x-2021-01-30-b.svg
    │   ├── bench-c5-18xlarge-2021-01-30-a.svg
    │   ├── bench-c5-18xlarge-2021-01-30-b.svg
    │   ├── bench-c5-18xlarge-2021-01-30-rss-a.svg
    │   ├── bench-c5-18xlarge-2021-01-30-rss-b.svg
    │   └── bench-macmini-2021-01-30.svg
    ├── doxyfile
    ├── ds-logo.jpg
    ├── ds-logo.png
    ├── mimalloc-doc.h
    ├── mimalloc-doxygen.css
    ├── mimalloc-logo-100.png
    ├── mimalloc-logo.png
    ├── mimalloc-logo.svg
    ├── spades-logo.png
    └── unreal-logo.svg
├── docs
    ├── annotated.html
    ├── annotated_dup.js
    ├── bc_s.png
    ├── bdwn.png
    ├── bench.html
    ├── build.html
    ├── classes.html
    ├── clipboard.js
    ├── closed.png
    ├── cookie.js
    ├── doc.png
    ├── doxygen.css
    ├── doxygen.png
    ├── doxygen.svg
    ├── dynsections.js
    ├── environment.html
    ├── folderclosed.png
    ├── folderopen.png
    ├── functions.html
    ├── functions_vars.html
    ├── group__aligned.html
    ├── group__aligned.js
    ├── group__analysis.html
    ├── group__analysis.js
    ├── group__analysis_structmi__heap__area__t.js
    ├── group__cpp.html
    ├── group__cpp.js
    ├── group__extended.html
    ├── group__extended.js
    ├── group__heap.html
    ├── group__heap.js
    ├── group__malloc.html
    ├── group__malloc.js
    ├── group__options.html
    ├── group__options.js
    ├── group__posix.html
    ├── group__posix.js
    ├── group__typed.html
    ├── group__typed.js
    ├── group__zeroinit.html
    ├── group__zeroinit.js
    ├── index.html
    ├── jquery.js
    ├── mimalloc-doc_8h_source.html
    ├── mimalloc-doxygen.css
    ├── mimalloc-logo.svg
    ├── modules.html
    ├── modules.js
    ├── nav_f.png
    ├── nav_g.png
    ├── nav_h.png
    ├── navtree.css
    ├── navtree.js
    ├── navtreedata.js
    ├── navtreeindex0.js
    ├── open.png
    ├── overrides.html
    ├── pages.html
    ├── resize.js
    ├── search
    │   ├── all_0.html
    │   ├── all_0.js
    │   ├── all_1.html
    │   ├── all_1.js
    │   ├── all_10.js
    │   ├── all_2.html
    │   ├── all_2.js
    │   ├── all_3.html
    │   ├── all_3.js
    │   ├── all_4.html
    │   ├── all_4.js
    │   ├── all_5.html
    │   ├── all_5.js
    │   ├── all_6.html
    │   ├── all_6.js
    │   ├── all_7.html
    │   ├── all_7.js
    │   ├── all_8.html
    │   ├── all_8.js
    │   ├── all_9.html
    │   ├── all_9.js
    │   ├── all_a.html
    │   ├── all_a.js
    │   ├── all_b.html
    │   ├── all_b.js
    │   ├── all_c.html
    │   ├── all_c.js
    │   ├── all_d.html
    │   ├── all_d.js
    │   ├── all_e.js
    │   ├── all_f.js
    │   ├── classes_0.html
    │   ├── classes_0.js
    │   ├── close.png
    │   ├── close.svg
    │   ├── enums_0.html
    │   ├── enums_0.js
    │   ├── enumvalues_0.html
    │   ├── enumvalues_0.js
    │   ├── enumvalues_1.html
    │   ├── enumvalues_1.js
    │   ├── functions_0.html
    │   ├── functions_0.js
    │   ├── functions_1.html
    │   ├── functions_1.js
    │   ├── groups_0.html
    │   ├── groups_0.js
    │   ├── groups_1.html
    │   ├── groups_1.js
    │   ├── groups_2.html
    │   ├── groups_2.js
    │   ├── groups_3.html
    │   ├── groups_3.js
    │   ├── groups_4.html
    │   ├── groups_4.js
    │   ├── groups_5.html
    │   ├── groups_5.js
    │   ├── groups_6.html
    │   ├── groups_6.js
    │   ├── groups_7.html
    │   ├── groups_7.js
    │   ├── groups_8.html
    │   ├── groups_8.js
    │   ├── groups_9.js
    │   ├── groups_a.js
    │   ├── groups_b.js
    │   ├── groups_c.js
    │   ├── groups_d.js
    │   ├── mag_sel.png
    │   ├── nomatches.html
    │   ├── pages_0.html
    │   ├── pages_0.js
    │   ├── pages_1.html
    │   ├── pages_1.js
    │   ├── pages_2.html
    │   ├── pages_2.js
    │   ├── pages_3.html
    │   ├── pages_3.js
    │   ├── pages_4.html
    │   ├── pages_4.js
    │   ├── pages_5.js
    │   ├── pages_6.js
    │   ├── pages_7.js
    │   ├── search.css
    │   ├── search.js
    │   ├── search_l.png
    │   ├── search_m.png
    │   ├── search_r.png
    │   ├── searchdata.js
    │   ├── typedefs_0.html
    │   ├── typedefs_0.js
    │   ├── typedefs_1.html
    │   ├── typedefs_1.js
    │   ├── typedefs_2.html
    │   ├── typedefs_2.js
    │   ├── variables_0.html
    │   ├── variables_0.js
    │   ├── variables_1.html
    │   ├── variables_1.js
    │   ├── variables_2.html
    │   ├── variables_2.js
    │   ├── variables_3.html
    │   ├── variables_3.js
    │   └── variables_4.js
    ├── splitbar.png
    ├── sync_off.png
    ├── sync_on.png
    ├── tab_a.png
    ├── tab_b.png
    ├── tab_h.png
    ├── tab_s.png
    ├── tabs.css
    ├── topics.js
    └── using.html
├── ide
    └── vs2022
    │   ├── mimalloc-lib.vcxproj
    │   ├── mimalloc-lib.vcxproj.filters
    │   ├── mimalloc-override-dll.vcxproj
    │   ├── mimalloc-override-dll.vcxproj.filters
    │   ├── mimalloc-override-test-dep.vcxproj
    │   ├── mimalloc-override-test.vcxproj
    │   ├── mimalloc-test-api.vcxproj
    │   ├── mimalloc-test-stress.vcxproj
    │   ├── mimalloc-test.vcxproj
    │   └── mimalloc.sln
├── include
    ├── mimalloc-new-delete.h
    ├── mimalloc-override.h
    ├── mimalloc-stats.h
    ├── mimalloc.h
    └── mimalloc
    │   ├── atomic.h
    │   ├── internal.h
    │   ├── prim.h
    │   ├── track.h
    │   └── types.h
├── mimalloc.pc.in
├── readme.md
├── src
    ├── alloc-aligned.c
    ├── alloc-override.c
    ├── alloc-posix.c
    ├── alloc.c
    ├── arena-abandon.c
    ├── arena.c
    ├── bitmap.c
    ├── bitmap.h
    ├── free.c
    ├── heap.c
    ├── init.c
    ├── libc.c
    ├── options.c
    ├── os.c
    ├── page-queue.c
    ├── page.c
    ├── prim
    │   ├── emscripten
    │   │   └── prim.c
    │   ├── osx
    │   │   ├── alloc-override-zone.c
    │   │   └── prim.c
    │   ├── prim.c
    │   ├── readme.md
    │   ├── unix
    │   │   └── prim.c
    │   ├── wasi
    │   │   └── prim.c
    │   └── windows
    │   │   ├── etw-mimalloc.wprp
    │   │   ├── etw.h
    │   │   ├── etw.man
    │   │   ├── prim.c
    │   │   └── readme.md
    ├── random.c
    ├── segment-map.c
    ├── segment.c
    ├── static.c
    └── stats.c
└── test
    ├── CMakeLists.txt
    ├── main-override-dep.cpp
    ├── main-override-dep.h
    ├── main-override-static.c
    ├── main-override.c
    ├── main-override.cpp
    ├── main.c
    ├── readme.md
    ├── test-api-fill.c
    ├── test-api.c
    ├── test-stress.c
    ├── test-wrong.c
    └── testhelper.h


/.gitattributes:
--------------------------------------------------------------------------------
 1 | # default behavior is to always use unix style line endings
 2 | * text eol=lf
 3 | *.png binary
 4 | *.pdn binary
 5 | *.jpg binary
 6 | *.sln binary
 7 | *.suo binary
 8 | *.vcproj binary
 9 | *.patch binary
10 | *.dll binary
11 | *.lib binary
12 | *.exe binary
13 | 


--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
 1 | build
 2 | ide/vs20??/*.db
 3 | ide/vs20??/*.opendb
 4 | ide/vs20??/*.user
 5 | ide/vs20??/.vs
 6 | ide/vs20??/VTune*
 7 | out/
 8 | docs/
 9 | *.zip
10 | *.tar
11 | *.gz
12 | .vscode
13 | .DS_STore
14 | 


--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
 1 | MIT License
 2 | 
 3 | Copyright (c) 2018-2025 Microsoft Corporation, Daan Leijen
 4 | 
 5 | Permission is hereby granted, free of charge, to any person obtaining a copy
 6 | of this software and associated documentation files (the "Software"), to deal
 7 | in the Software without restriction, including without limitation the rights
 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 | 
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 | 
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 | 


--------------------------------------------------------------------------------
/SECURITY.md:
--------------------------------------------------------------------------------
 1 | <!-- BEGIN MICROSOFT SECURITY.MD V0.0.9 BLOCK -->
 2 | 
 3 | ## Security
 4 | 
 5 | Microsoft takes the security of our software products and services seriously, which includes all source code repositories managed through our GitHub organizations, which include [Microsoft](https://github.com/Microsoft), [Azure](https://github.com/Azure), [DotNet](https://github.com/dotnet), [AspNet](https://github.com/aspnet) and [Xamarin](https://github.com/xamarin).
 6 | 
 7 | If you believe you have found a security vulnerability in any Microsoft-owned repository that meets [Microsoft's definition of a security vulnerability](https://aka.ms/security.md/definition), please report it to us as described below.
 8 | 
 9 | ## Reporting Security Issues
10 | 
11 | **Please do not report security vulnerabilities through public GitHub issues.**
12 | 
13 | Instead, please report them to the Microsoft Security Response Center (MSRC) at [https://msrc.microsoft.com/create-report](https://aka.ms/security.md/msrc/create-report).
14 | 
15 | If you prefer to submit without logging in, send email to [secure@microsoft.com](mailto:secure@microsoft.com).  If possible, encrypt your message with our PGP key; please download it from the [Microsoft Security Response Center PGP Key page](https://aka.ms/security.md/msrc/pgp).
16 | 
17 | You should receive a response within 24 hours. If for some reason you do not, please follow up via email to ensure we received your original message. Additional information can be found at [microsoft.com/msrc](https://www.microsoft.com/msrc). 
18 | 
19 | Please include the requested information listed below (as much as you can provide) to help us better understand the nature and scope of the possible issue:
20 | 
21 |   * Type of issue (e.g. buffer overflow, SQL injection, cross-site scripting, etc.)
22 |   * Full paths of source file(s) related to the manifestation of the issue
23 |   * The location of the affected source code (tag/branch/commit or direct URL)
24 |   * Any special configuration required to reproduce the issue
25 |   * Step-by-step instructions to reproduce the issue
26 |   * Proof-of-concept or exploit code (if possible)
27 |   * Impact of the issue, including how an attacker might exploit the issue
28 | 
29 | This information will help us triage your report more quickly.
30 | 
31 | If you are reporting for a bug bounty, more complete reports can contribute to a higher bounty award. Please visit our [Microsoft Bug Bounty Program](https://aka.ms/security.md/msrc/bounty) page for more details about our active programs.
32 | 
33 | ## Preferred Languages
34 | 
35 | We prefer all communications to be in English.
36 | 
37 | ## Policy
38 | 
39 | Microsoft follows the principle of [Coordinated Vulnerability Disclosure](https://aka.ms/security.md/cvd).
40 | 
41 | <!-- END MICROSOFT SECURITY.MD BLOCK -->
42 | 


--------------------------------------------------------------------------------
/bin/mimalloc-redirect-arm64.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mimalloc/09a27098aa6e9286518bd9c74e6ffa7199c3f04e/bin/mimalloc-redirect-arm64.dll


--------------------------------------------------------------------------------
/bin/mimalloc-redirect-arm64.lib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mimalloc/09a27098aa6e9286518bd9c74e6ffa7199c3f04e/bin/mimalloc-redirect-arm64.lib


--------------------------------------------------------------------------------
/bin/mimalloc-redirect-arm64ec.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mimalloc/09a27098aa6e9286518bd9c74e6ffa7199c3f04e/bin/mimalloc-redirect-arm64ec.dll


--------------------------------------------------------------------------------
/bin/mimalloc-redirect-arm64ec.lib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mimalloc/09a27098aa6e9286518bd9c74e6ffa7199c3f04e/bin/mimalloc-redirect-arm64ec.lib


--------------------------------------------------------------------------------
/bin/mimalloc-redirect.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mimalloc/09a27098aa6e9286518bd9c74e6ffa7199c3f04e/bin/mimalloc-redirect.dll


--------------------------------------------------------------------------------
/bin/mimalloc-redirect.lib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mimalloc/09a27098aa6e9286518bd9c74e6ffa7199c3f04e/bin/mimalloc-redirect.lib


--------------------------------------------------------------------------------
/bin/mimalloc-redirect32.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mimalloc/09a27098aa6e9286518bd9c74e6ffa7199c3f04e/bin/mimalloc-redirect32.dll


--------------------------------------------------------------------------------
/bin/mimalloc-redirect32.lib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mimalloc/09a27098aa6e9286518bd9c74e6ffa7199c3f04e/bin/mimalloc-redirect32.lib


--------------------------------------------------------------------------------
/bin/minject-arm64.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mimalloc/09a27098aa6e9286518bd9c74e6ffa7199c3f04e/bin/minject-arm64.exe


--------------------------------------------------------------------------------
/bin/minject.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mimalloc/09a27098aa6e9286518bd9c74e6ffa7199c3f04e/bin/minject.exe


--------------------------------------------------------------------------------
/bin/minject32.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mimalloc/09a27098aa6e9286518bd9c74e6ffa7199c3f04e/bin/minject32.exe


--------------------------------------------------------------------------------
/cmake/JoinPaths.cmake:
--------------------------------------------------------------------------------
 1 | # This module provides function for joining paths
 2 | # known from most languages
 3 | #
 4 | # SPDX-License-Identifier: (MIT OR CC0-1.0)
 5 | # Copyright 2020 Jan Tojnar
 6 | # https://github.com/jtojnar/cmake-snips
 7 | #
 8 | # Modelled after Python’s os.path.join
 9 | # https://docs.python.org/3.7/library/os.path.html#os.path.join
10 | # Windows not supported
11 | function(join_paths joined_path first_path_segment)
12 |     set(temp_path "${first_path_segment}")
13 |     foreach(current_segment IN LISTS ARGN)
14 |         if(NOT ("${current_segment}" STREQUAL ""))
15 |             if(IS_ABSOLUTE "${current_segment}")
16 |                 set(temp_path "${current_segment}")
17 |             else()
18 |                 set(temp_path "${temp_path}/${current_segment}")
19 |             endif()
20 |         endif()
21 |     endforeach()
22 |     set(${joined_path} "${temp_path}" PARENT_SCOPE)
23 | endfunction()
24 | 


--------------------------------------------------------------------------------
/cmake/mimalloc-config-version.cmake:
--------------------------------------------------------------------------------
 1 | set(mi_version_major 2)
 2 | set(mi_version_minor 2)
 3 | set(mi_version_patch 5)
 4 | set(mi_version ${mi_version_major}.${mi_version_minor})
 5 | 
 6 | set(PACKAGE_VERSION ${mi_version})
 7 | if(PACKAGE_FIND_VERSION_MAJOR)
 8 |     if("${PACKAGE_FIND_VERSION_MAJOR}" EQUAL "${mi_version_major}")
 9 |         if ("${PACKAGE_FIND_VERSION_MINOR}" EQUAL "${mi_version_minor}")
10 |             set(PACKAGE_VERSION_EXACT TRUE)
11 |         elseif("${PACKAGE_FIND_VERSION_MINOR}" LESS "${mi_version_minor}")
12 |             set(PACKAGE_VERSION_COMPATIBLE TRUE)
13 |         else()
14 |             set(PACKAGE_VERSION_UNSUITABLE TRUE)
15 |         endif()
16 |     else()
17 |         set(PACKAGE_VERSION_UNSUITABLE TRUE)
18 |     endif()
19 | endif()
20 | 


--------------------------------------------------------------------------------
/cmake/mimalloc-config.cmake:
--------------------------------------------------------------------------------
 1 | include(${CMAKE_CURRENT_LIST_DIR}/mimalloc.cmake)
 2 | get_filename_component(MIMALLOC_CMAKE_DIR "${CMAKE_CURRENT_LIST_DIR}" PATH)  # one up from the cmake dir, e.g. /usr/local/lib/cmake/mimalloc-2.0
 3 | get_filename_component(MIMALLOC_VERSION_DIR "${CMAKE_CURRENT_LIST_DIR}" NAME)
 4 | string(REPLACE "/lib/cmake" "/lib" MIMALLOC_LIBRARY_DIR "${MIMALLOC_CMAKE_DIR}")
 5 | if("${MIMALLOC_VERSION_DIR}" EQUAL "mimalloc")
 6 |   # top level install
 7 |   string(REPLACE "/lib/cmake" "/include" MIMALLOC_INCLUDE_DIR "${MIMALLOC_CMAKE_DIR}")
 8 |   set(MIMALLOC_OBJECT_DIR "${MIMALLOC_LIBRARY_DIR}")
 9 | else()
10 |   # versioned
11 |   string(REPLACE "/lib/cmake/" "/include/" MIMALLOC_INCLUDE_DIR "${CMAKE_CURRENT_LIST_DIR}")
12 |   string(REPLACE "/lib/cmake/" "/lib/" MIMALLOC_OBJECT_DIR "${CMAKE_CURRENT_LIST_DIR}")
13 | endif()
14 | set(MIMALLOC_TARGET_DIR "${MIMALLOC_LIBRARY_DIR}") # legacy
15 | 


--------------------------------------------------------------------------------
/contrib/docker/alpine-arm32v7/Dockerfile:
--------------------------------------------------------------------------------
 1 | # install from an image
 2 | # download first an appropriate tar.gz image into the current directory
 3 | # from <https://github.com/alpinelinux/docker-alpine/tree/edge/armv7>
 4 | FROM scratch
 5 | 
 6 | # Substitute the image name that was downloaded
 7 | ADD alpine-minirootfs-20240329-armv7.tar.gz /
 8 | 
 9 | # Install tools
10 | RUN apk add build-base make cmake
11 | RUN apk add git
12 | RUN apk add vim
13 | 
14 | RUN mkdir -p  /home/dev
15 | WORKDIR /home/dev
16 | 
17 | # Get mimalloc
18 | RUN git clone https://github.com/microsoft/mimalloc -b dev2
19 | RUN mkdir -p mimalloc/out/release
20 | RUN mkdir -p mimalloc/out/debug
21 | 
22 | # Build mimalloc debug
23 | WORKDIR /home/dev/mimalloc/out/debug
24 | RUN cmake ../.. -DMI_DEBUG_FULL=ON
25 | RUN make -j
26 | RUN make test
27 | 
28 | CMD ["/bin/sh"]
29 | 


--------------------------------------------------------------------------------
/contrib/docker/alpine-x86/Dockerfile:
--------------------------------------------------------------------------------
 1 | # install from an image
 2 | # download first an appropriate tar.gz image into the current directory
 3 | # from <https://github.com/alpinelinux/docker-alpine/tree/edge/x86>
 4 | FROM scratch
 5 | 
 6 | # Substitute the image name that was downloaded
 7 | ADD alpine-minirootfs-20250108-x86.tar.gz /
 8 | 
 9 | # Install tools
10 | RUN apk add build-base make cmake
11 | RUN apk add git
12 | RUN apk add vim
13 | 
14 | RUN mkdir -p  /home/dev
15 | WORKDIR /home/dev
16 | 
17 | # Get mimalloc
18 | RUN git clone https://github.com/microsoft/mimalloc -b dev2
19 | RUN mkdir -p mimalloc/out/release
20 | RUN mkdir -p mimalloc/out/debug
21 | 
22 | # Build mimalloc debug
23 | WORKDIR /home/dev/mimalloc/out/debug
24 | RUN cmake ../.. -DMI_DEBUG_FULL=ON
25 | # RUN make -j
26 | # RUN make test
27 | 
28 | CMD ["/bin/sh"]
29 | 


--------------------------------------------------------------------------------
/contrib/docker/alpine/Dockerfile:
--------------------------------------------------------------------------------
 1 | # alpine image  
 2 | FROM alpine
 3 | 
 4 | # Install tools
 5 | RUN apk add build-base make cmake
 6 | RUN apk add git
 7 | RUN apk add vim
 8 | 
 9 | RUN mkdir -p  /home/dev
10 | WORKDIR /home/dev
11 | 
12 | # Get mimalloc
13 | RUN git clone https://github.com/microsoft/mimalloc -b dev2
14 | RUN mkdir -p mimalloc/out/release
15 | RUN mkdir -p mimalloc/out/debug
16 | 
17 | # Build mimalloc debug
18 | WORKDIR /home/dev/mimalloc/out/debug
19 | RUN cmake ../.. -DMI_DEBUG_FULL=ON
20 | RUN make -j
21 | RUN make test
22 | 
23 | CMD ["/bin/sh"]


--------------------------------------------------------------------------------
/contrib/docker/manylinux-x64/Dockerfile:
--------------------------------------------------------------------------------
 1 | FROM quay.io/pypa/manylinux2014_x86_64
 2 | 
 3 | # Install tools
 4 | RUN yum install -y openssl-devel
 5 | RUN yum install -y gcc gcc-c++ kernel-devel make
 6 | RUN yum install -y git cmake
 7 | RUN yum install -y vim
 8 | 
 9 | RUN mkdir -p  /home/dev
10 | WORKDIR /home/dev
11 | 
12 | # Get mimalloc
13 | RUN git clone https://github.com/microsoft/mimalloc -b dev2
14 | RUN mkdir -p mimalloc/out/release
15 | RUN mkdir -p mimalloc/out/debug
16 | 
17 | # Build mimalloc debug
18 | WORKDIR /home/dev/mimalloc/out/debug
19 | RUN cmake ../.. -DMI_DEBUG_FULL=ON
20 | RUN make -j
21 | RUN make test
22 | 
23 | CMD ["/bin/sh"]


--------------------------------------------------------------------------------
/contrib/docker/readme.md:
--------------------------------------------------------------------------------
 1 | Various example docker files used for testing.
 2 | 
 3 | Usage:
 4 | 
 5 | ```
 6 | > cd <host>
 7 | > docker build -t <host>-mimalloc .
 8 | > docker run -it <host>-mimalloc
 9 | >> make test
10 | ```
11 | 


--------------------------------------------------------------------------------
/contrib/vcpkg/portfile.cmake:
--------------------------------------------------------------------------------
 1 | vcpkg_from_github(
 2 |   OUT_SOURCE_PATH SOURCE_PATH
 3 |   REPO microsoft/mimalloc
 4 |   HEAD_REF master
 5 | 
 6 |   # The "REF" can be a commit hash, branch name (dev2), or a version (v2.2.1).
 7 |   REF "v${VERSION}"
 8 |   # REF e2db21e9ba9fb9172b7b0aa0fe9b8742525e8774
 9 | 
10 |   # The sha512 is the hash of the tar.gz bundle.
11 |   # (To get the sha512, run `vcpkg install "mimalloc[override]" --overlay-ports=./contrib/vcpkg` and copy the sha from the error message.)
12 |   SHA512 5218fcd3ad285687ed3f78b4651d7d3aee92b6f28e6c563a884975e654a43c94c4e5c02c5ed0322c3d3627d83d4843df2d2d8441f09aa18d00674ca9fd657345
13 | )
14 | 
15 | vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
16 |   FEATURES
17 |     c           MI_NO_USE_CXX
18 |     guarded     MI_GUARDED
19 |     secure      MI_SECURE
20 |     override    MI_OVERRIDE
21 |     optarch     MI_OPT_ARCH
22 |     nooptarch   MI_NO_OPT_ARCH
23 |     optsimd     MI_OPT_SIMD
24 |     xmalloc     MI_XMALLOC
25 |     asm         MI_SEE_ASM
26 | )
27 | string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" MI_BUILD_STATIC)
28 | string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" MI_BUILD_SHARED)
29 | 
30 | vcpkg_cmake_configure(
31 |   SOURCE_PATH "${SOURCE_PATH}"
32 |   OPTIONS
33 |     -DMI_USE_CXX=ON
34 |     -DMI_BUILD_TESTS=OFF
35 |     -DMI_BUILD_OBJECT=ON
36 |     -DMI_BUILD_STATIC=${MI_BUILD_STATIC}
37 |     -DMI_BUILD_SHARED=${MI_BUILD_SHARED}
38 |     -DMI_INSTALL_TOPLEVEL=ON
39 |     ${FEATURE_OPTIONS}
40 | )
41 | 
42 | vcpkg_cmake_install()
43 | vcpkg_copy_pdbs()
44 | 
45 | file(COPY
46 |   "${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake"
47 |   "${CMAKE_CURRENT_LIST_DIR}/usage"
48 |   DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}"
49 | )
50 | vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/mimalloc)
51 | 
52 | if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
53 |   # todo: why is this needed?
54 |   vcpkg_replace_string(
55 |     "${CURRENT_PACKAGES_DIR}/include/mimalloc.h"
56 |     "!defined(MI_SHARED_LIB)"
57 |     "0 // !defined(MI_SHARED_LIB)"
58 |   )
59 | endif()
60 | file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
61 | file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share")
62 | 
63 | vcpkg_fixup_pkgconfig()
64 | vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE")
65 | 


--------------------------------------------------------------------------------
/contrib/vcpkg/readme.md:
--------------------------------------------------------------------------------
 1 | # Vcpkg support
 2 | 
 3 | This directory is meant to provide the sources for the official [vcpkg port] 
 4 | of mimalloc, but can also be used to override the official port with
 5 | your own variant.
 6 | 
 7 | For example, you can edit the [`portfile.cmake`](portfile.cmake) 
 8 | to check out a specific commit, version, or branch of mimalloc, or set further options. 
 9 | You can install such custom port as:
10 | 
11 | ```sh
12 | $ vcpkg install "mimalloc[override]" --recurse --overlay-ports=./contrib/vcpkg
13 | ```
14 | 
15 | This will also show the correct sha512 hash if you use a custom version.
16 | Another way is to refer to the overlay from the [vcpkg-configuration.json](https://learn.microsoft.com/en-us/vcpkg/reference/vcpkg-configuration-json) file.
17 | See also the vcpkg [documentation](https://learn.microsoft.com/en-us/vcpkg/produce/update-package-version) for more information.
18 | 
19 | 
20 | # Using mimalloc from vcpkg
21 | 
22 | When using [cmake with vcpkg](https://learn.microsoft.com/en-us/vcpkg/get_started/get-started?pivots=shell-powershell), 
23 | you can use mimalloc from the `CMakeLists.txt` as:
24 | 
25 | ```cmake
26 | find_package(mimalloc CONFIG REQUIRED)
27 | target_link_libraries(main PRIVATE mimalloc)
28 | ```
29 | 
30 | See [`test/CMakeLists.txt](../../test/CMakeLists.txt) for more examples.
31 | 
32 | 
33 | # Acknowledgements
34 | 
35 | The original port for vckpg was contributed by many people, including: @vicroms, @myd7349, @PhoubeHui, @LilyWangL,
36 | @JonLiu1993, @RT2Code, Remy Tassoux, @wangao, @BillyONeal, @jiayuehua, @dg0yt, @gerar-ryan-immersaview, @nickdademo, 
37 | and @jimwang118 -- Thank you so much!
38 | 
39 | 
40 | [vcpkg port]: https://github.com/microsoft/vcpkg/tree/master/ports/mimalloc
41 | 


--------------------------------------------------------------------------------
/contrib/vcpkg/usage:
--------------------------------------------------------------------------------
 1 | Use the following CMake targets to import mimalloc:
 2 | 
 3 |   find_package(mimalloc CONFIG REQUIRED)
 4 |   target_link_libraries(main PRIVATE mimalloc)
 5 | 
 6 | And use mimalloc in your sources as:
 7 | 
 8 |   #include <mimalloc.h>
 9 |   #include <stdio.h>
10 |   int main(int argc, char** argv) {
11 |     int* p = mi_malloc_tp(int);
12 |     *p = mi_version();
13 |     printf("mimalloc version: %d\n", *p);
14 |     mi_free(p);
15 |     return 0;
16 |   }
17 | 
18 | When dynamically overriding on Windows, ensure `mimalloc.dll` is linked through some call to
19 | mimalloc (e.g. `mi_version()`), and that the `mimalloc-redirect.dll` is in the same directory.
20 | See https://github.com/microsoft/mimalloc/blob/dev/bin/readme.md for detailed information.
21 | 


--------------------------------------------------------------------------------
/contrib/vcpkg/vcpkg-cmake-wrapper.cmake:
--------------------------------------------------------------------------------
 1 | _find_package(${ARGS})
 2 | 
 3 | if(CMAKE_CURRENT_LIST_DIR STREQUAL "${MIMALLOC_CMAKE_DIR}/${MIMALLOC_VERSION_DIR}")
 4 |     set(MIMALLOC_INCLUDE_DIR "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/include")
 5 |     # As in vcpkg.cmake
 6 |     if(NOT DEFINED CMAKE_BUILD_TYPE OR CMAKE_BUILD_TYPE MATCHES "^[Dd][Ee][Bb][Uu][Gg]
quot;)
 7 |         set(MIMALLOC_LIBRARY_DIR "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug/lib")
 8 |     else()
 9 |         set(MIMALLOC_LIBRARY_DIR "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/lib")
10 |     endif()
11 |     set(MIMALLOC_OBJECT_DIR "${MIMALLOC_LIBRARY_DIR}")
12 |     set(MIMALLOC_TARGET_DIR "${MIMALLOC_LIBRARY_DIR}")
13 | endif()
14 | 
15 | # vcpkg always configures either a static or dynamic library.
16 | # ensure to always expose the mimalloc target as either the static or dynamic build.
17 | if(TARGET mimalloc-static AND NOT TARGET mimalloc)
18 |   add_library(mimalloc INTERFACE IMPORTED)
19 |   set_target_properties(mimalloc PROPERTIES INTERFACE_LINK_LIBRARIES mimalloc-static)
20 | endif()
21 | 


--------------------------------------------------------------------------------
/contrib/vcpkg/vcpkg.json:
--------------------------------------------------------------------------------
 1 | {
 2 |   "name": "mimalloc",
 3 |   "version": "2.2.4",
 4 |   "port-version": 1,
 5 |   "description": "Compact general purpose allocator with excellent performance",
 6 |   "homepage": "https://github.com/microsoft/mimalloc",
 7 |   "license": "MIT",
 8 |   "supports": "!uwp",
 9 |   "dependencies": [
10 |     {
11 |       "name": "vcpkg-cmake",
12 |       "host": true
13 |     },
14 |     {
15 |       "name": "vcpkg-cmake-config",
16 |       "host": true
17 |     }
18 |   ],
19 |   "features": {
20 |     "c": {
21 |       "description": "Use C11 compilation (this can still override new/delete)"
22 |     },
23 |     "override": {
24 |       "description": "Override the standard malloc/free interface"
25 |     },
26 |     "secure": {
27 |       "description": "Use full security mitigations (like guard pages and randomization)"
28 |     },
29 |     "guarded": {
30 |       "description": "Use build that support guard pages after objects controlled with MIMALLOC_GUARDED_SAMPLE_RATE"
31 |     },
32 |     "xmalloc": {
33 |       "description": "If out-of-memory, call abort() instead of returning NULL"
34 |     },
35 |     "optarch": {
36 |       "description": "Use architecture specific optimizations (on x64: '-march=haswell;-mavx2', on arm64: '-march=armv8.1-a')"
37 |     },
38 |     "nooptarch": {
39 |       "description": "Do _not_ use architecture specific optimizations (on x64: '-march=haswell;-mavx2', on arm64: '-march=armv8.1-a')"
40 |     },
41 |     "optsimd": {
42 |       "description": "Allow use of SIMD instructions (avx2 or neon) (requires 'optarch' to be enabled)"
43 |     },
44 |     "asm": {
45 |       "description": "Generate assembly files"
46 |     }
47 |   }
48 | }


--------------------------------------------------------------------------------
/doc/ds-logo.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mimalloc/09a27098aa6e9286518bd9c74e6ffa7199c3f04e/doc/ds-logo.jpg


--------------------------------------------------------------------------------
/doc/ds-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mimalloc/09a27098aa6e9286518bd9c74e6ffa7199c3f04e/doc/ds-logo.png


--------------------------------------------------------------------------------
/doc/mimalloc-doxygen.css:
--------------------------------------------------------------------------------
 1 | #projectlogo img {
 2 | 	padding: 1ex;
 3 | }
 4 | tt, code, kbd, samp, div.memproto, div.fragment, div.line, table.memname {
 5 | 	font-family: Consolas, Monaco, Inconsolata, "Courier New", monospace;
 6 | }
 7 | .image img, .textblock img {
 8 | 	max-width: 99%;
 9 | 	max-height: 350px;
10 | }
11 | table.memname, .memname{
12 | 	font-weight: bold;
13 | }
14 | code {
15 | 	background-color: #EEE;
16 | 	padding: 0ex 0.25ex;
17 | }
18 | body {
19 | 	margin: 1ex 1ex 0ex 1ex;
20 | 	border: 1px solid black;
21 | }
22 | .contents table, .contents div, .contents p, .contents dl {
23 | 	font-size: 16px;
24 | 	line-height: 1.44;
25 | }
26 | body #nav-tree .label {
27 | 	font-size: 14px;
28 | }
29 | a{
30 | 	text-decoration: underline;
31 | }
32 | #side-nav {
33 | 	margin-left: 1ex;
34 | 	border-left: 1px solid black;
35 | }
36 | #nav-tree {
37 | 	padding-left: 1ex;
38 | }
39 | #nav-path {
40 | 	display: none;
41 | }
42 | div.fragment {
43 | 	background-color: #EEE;
44 | 	padding: 0.25ex 0.5ex;
45 | 	border-color: black;
46 | }
47 | #nav-sync img {
48 | 	display: none;
49 | }
50 | h1,h2,h3,h4,h5,h6 {
51 | 	transition:none;
52 | }
53 | .memtitle {
54 | 	background-image: none;
55 | 	background-color: #EEE;
56 | }
57 | table.memproto, .memproto {
58 | 	text-shadow: none;
59 | 	font-size: 110%;
60 | }
61 | 


--------------------------------------------------------------------------------
/doc/mimalloc-logo-100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mimalloc/09a27098aa6e9286518bd9c74e6ffa7199c3f04e/doc/mimalloc-logo-100.png


--------------------------------------------------------------------------------
/doc/mimalloc-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mimalloc/09a27098aa6e9286518bd9c74e6ffa7199c3f04e/doc/mimalloc-logo.png


--------------------------------------------------------------------------------
/doc/spades-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mimalloc/09a27098aa6e9286518bd9c74e6ffa7199c3f04e/doc/spades-logo.png


--------------------------------------------------------------------------------
/doc/unreal-logo.svg:
--------------------------------------------------------------------------------
 1 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 2 | <svg
 3 |    height="706.71118"
 4 |    width="746.71118"
 5 |    viewBox="-150.3282 -273.04775 810.70706 1447.2442"
 6 |    version="1.1"
 7 |    id="svg34"
 8 |    xmlns="http://www.w3.org/2000/svg"
 9 |    xmlns:svg="http://www.w3.org/2000/svg">
10 |   <defs
11 |      id="defs24">
12 |     <clipPath
13 |        id="a"
14 |        clipPathUnits="userSpaceOnUse">
15 |       <path
16 |          d="M 0,1024 H 1024 V 0 H 0 Z"
17 |          id="path21" />
18 |     </clipPath>
19 |   </defs>
20 |   <rect
21 |      style="fill:#b2b2b2;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.04786;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
22 |      id="rect121"
23 |      width="1300.7299"
24 |      height="1264.0651"
25 |      x="-391.91745"
26 |      y="-186.69598"
27 |      rx="154.79872"
28 |      ry="154.79872" />
29 |   <path
30 |      d="m 693.86447,863.90527 v -94.746 h -35.855 v 122.747 h 120.26 v -28 z"
31 |      id="path26" />
32 |   <g
33 |      clip-path="url(#a)"
34 |      transform="matrix(1.33333,0,0,-1.33333,-408.39652,1133.2393)"
35 |      id="g32">
36 |     <path
37 |        d="m 498.837,117.958 h 20.085 c 0.498,-5.295 -1.063,-7.971 -5.392,-8.386 -4.293,-0.411 -8.612,-0.76 -12.92,-0.77 -17.903,-0.044 -19.822,2.052 -18.737,19.932 0.02,0.333 0.03,0.666 0.063,0.997 0.67,6.667 3.126,9.189 9.81,9.499 5.15,0.238 10.316,0.089 15.476,0.132 5.373,0.044 10.5,-0.337 11.806,-6.626 h 13.198 c 1.86,10.558 -1.6,16.306 -11.74,16.9 -13.059,0.767 -26.228,0.648 -39.293,-0.086 -8.782,-0.493 -13.292,-5.67 -13.804,-14.27 -0.444,-7.454 -0.42,-14.975 -0.007,-22.434 0.441,-7.953 4.16,-11.928 11.938,-13.918 2.87,-0.734 5.785,-1.29 8.68,-1.928 h 26 c 2.091,0.444 4.177,0.913 6.274,1.328 5.615,1.11 11.135,2.918 12.264,9.28 1.114,6.278 1.061,12.763 1.546,19.515 h -35.247 z m -103.4,63.438 v 91.393 h -26.424 v -69.795 l -54.236,70.22 H 273.38 V 181.28 h 26.308 v 68.354 l 1.226,0.31 53.645,-68.547 z m 47.577,45.635 v 26.323 c 12.208,0 24.12,0.002 36.033,-0.003 1.662,0 3.323,-0.048 4.985,-0.059 14.801,-0.1 16.353,-4.42 14.866,-18.979 -0.484,-4.738 -4.073,-7.103 -8.306,-7.175 -15.731,-0.268 -31.469,-0.107 -47.578,-0.107 m 56.443,-33.406 c 0.357,-4.063 0.548,-8.14 0.82,-12.3 h 26.391 c 0,5.758 0.219,11.061 -0.045,16.34 -0.581,11.61 -2.289,16.735 -13.599,18.696 -0.592,0.103 -1.114,0.614 -2.506,1.42 11.369,2.53 15.442,10.208 15.981,20.201 0.267,4.96 0.176,10.017 -0.484,14.932 -1.604,11.95 -5.993,16.673 -17.761,18.885 a 101.743,101.743 0 0 1 -17.843,1.741 c -22.818,0.197 -45.638,0.09 -68.458,0.066 -1.78,-0.002 -3.559,-0.22 -5.646,-0.36 v -91.884 h 26.535 v 25.35 c 6.04,0 11.509,0.111 16.972,-0.025 9.644,-0.24 19.344,-0.086 28.908,-1.129 7.832,-0.854 10.041,-4.046 10.735,-11.933 m 73.129,24.754 h 68.786 v 18.565 h -68.899 v 16.585 h 72.852 v 19.517 h -99.79 v -91.744 h 101.018 v 20.193 h -73.967 z m -319.109,52.037 c 0.004,0.918 -0.563,1.84 -0.847,2.708 h -26.34 c 0,-16.299 0.052,-32.104 -0.036,-47.909 -0.025,-4.314 -0.31,-8.644 -0.772,-12.935 -0.665,-6.161 -4.552,-10.04 -10.412,-10.334 -12.098,-0.61 -24.283,-1.056 -36.347,-0.266 -9.717,0.635 -12.873,4.996 -12.984,14.895 -0.19,16.997 -0.103,33.998 -0.188,50.997 -0.009,1.895 -0.385,3.789 -0.59,5.67 h -26.32 c 0,-22.846 -0.788,-45.02 0.27,-67.106 0.734,-15.35 7.1,-21.4 22.59,-23.992 22.481,-3.765 45.194,-3.61 67.677,-0.266 17.168,2.553 22.995,8.927 23.753,26.069 0.92,20.79 0.464,41.644 0.546,62.47 m 447.926,-53.371 19.515,38.362 19.723,-38.362 z m 2.8,56.306 -49.975,-92.133 h 28.863 l 8.345,15.905 h 59.333 l 8.375,-15.847 h 29.165 l -50.248,92.075 z m -264.917,-161.351 -1.233,-0.292 a 532757.74,532757.74 0 0 1 -30.02,38.7 h -23.4 v -51.93 h 14.433 v 37.887 l 1.47,0.522 30.288,-38.488 h 23.367 v 51.89 h -14.904 z m 187.996,-0.026 -1.193,-0.31 c -9.93,12.813 -19.858,25.627 -29.476,38.039 H 573.309 V 98.583 h 14.777 v 39.2 l 30.889,-39.43 h 23.009 v 51.189 h -14.702 z m -295.244,7.284 h 39.176 v 10.717 H 332.04 v 9.647 h 41.322 V 150.45 H 317.11 V 98.519 h 57.303 v 11.039 h -42.375 z m 338.914,0.018 h 38.455 v 10.44 H 671.1 v 9.635 h 40.57 v 10.3 H 655.83 V 98.556 h 56.742 v 10.952 h -41.62 z M 545.666,98.416 h 14.301 v 51.189 H 545.666 Z M 312.554,585.913 c 0,0 -10.463,51.999 44.874,114.973 55.342,62.972 96.863,85.871 141.707,97.799 l -0.078,-0.046 0.17,0.046 c 0,0 -35.227,-20.517 -35.227,-51.522 0,-9 1.435,-15.184 3.423,-19.315 2.638,-5.488 6.816,-7.354 10.567,-7.372 3.16,-0.018 5.01,1.281 9.01,2.834 V 555.386 c 0,0 0.433,-2.707 2.863,-5.915 3.5,-4.613 9,-10.243 19.335,-10.3 17.629,0.113 39.802,20.026 39.802,20.026 v 135.964 c 0,13.832 -9.9,30.53 -20.39,36.259 0,0 1.43,0.09 3.744,0.089 6.926,0.002 21.784,-0.79 30.063,-7.115 2.3,2.665 39.418,44.665 105.466,57.589 l -0.032,-0.037 0.18,0.037 c 0,0 -36.531,-43.016 -47.981,-64.348 -2.035,-0.121 -2.332,-40.471 -1.993,-80.79 0.329,-38.92 1.253,-77.818 1.789,-80.509 0,0 3.898,-5.794 13.824,-5.844 11.196,-0.057 30.063,7.195 59.643,38.288 l -10e-4,-10e-4 v 10e-4 c 0,0 -0.78,-1.771 -2.35,-4.908 -8.476,-16.938 -39.974,-73.721 -95.924,-106.725 l -0.003,0.003 -0.005,-0.003 -36.29,30.693 -0.927,0.774 -39.58,-41.967 -0.06,0.006 -0.005,-0.006 c 0,0 -90.232,7.633 -127.92,62.015 l 0.179,-0.065 -0.047,0.065 c 0,0 5.707,-2.221 12.148,-2.342 7.547,-0.138 15.472,2.619 15.472,15.229 v 127.85 c 0,6.529 -4.495,13.853 -14.362,13.825 -8.874,-0.023 -21.614,-5.994 -39.01,-23.843 -36.734,-37.685 -51.99,-73.468 -51.99,-73.468 l -0.025,0.136 -0.06,-0.136 M 513,369.156 c 70.386,0 136.56,27.41 186.33,77.18 49.77,49.771 77.18,115.944 77.18,186.33 0,70.386 -27.41,136.559 -77.18,186.33 -49.77,49.77 -115.944,77.18 -186.33,77.18 -70.386,0 -136.56,-27.41 -186.33,-77.18 -49.77,-49.771 -77.18,-115.944 -77.18,-186.33 0,-70.386 27.41,-136.559 77.18,-186.33 49.77,-49.77 115.944,-77.18 186.33,-77.18"
38 |        id="path28" />
39 |     <path
40 |        d="m 513,908.307 c 152.232,0 275.641,-123.409 275.641,-275.64 0,-152.233 -123.409,-275.642 -275.641,-275.642 -152.232,0 -275.641,123.41 -275.641,275.641 0,152.232 123.409,275.641 275.641,275.641 m 0,-559.119 c 75.72,0 146.907,29.487 200.449,83.03 53.542,53.541 83.028,124.728 83.028,200.448 0,75.72 -29.486,146.907 -83.028,200.45 -53.542,53.54 -124.729,83.026 -200.449,83.026 -75.72,0 -146.907,-29.486 -200.449,-83.028 -53.542,-53.542 -83.028,-124.73 -83.028,-200.449 0,-75.72 29.486,-146.907 83.028,-200.449 C 366.093,378.674 437.28,349.188 513,349.188"
41 |        id="path30" />
42 |   </g>
43 | </svg>
44 | 


--------------------------------------------------------------------------------
/docs/annotated_dup.js:
--------------------------------------------------------------------------------
1 | var annotated_dup =
2 | [
3 |     [ "mi_heap_area_t", "group__analysis.html#structmi__heap__area__t", "group__analysis_structmi__heap__area__t" ],
4 |     [ "mi_stl_allocator", "group__cpp.html#structmi__stl__allocator", null ]
5 | ];


--------------------------------------------------------------------------------
/docs/bc_s.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mimalloc/09a27098aa6e9286518bd9c74e6ffa7199c3f04e/docs/bc_s.png


--------------------------------------------------------------------------------
/docs/bdwn.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mimalloc/09a27098aa6e9286518bd9c74e6ffa7199c3f04e/docs/bdwn.png


--------------------------------------------------------------------------------
/docs/bench.html:
--------------------------------------------------------------------------------
  1 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2 | <html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
  3 | <head>
  4 | <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
  5 | <meta http-equiv="X-UA-Compatible" content="IE=11"/>
  6 | <meta name="generator" content="Doxygen 1.13.1"/>
  7 | <meta name="viewport" content="width=device-width, initial-scale=1"/>
  8 | <title>mi-malloc: Performance</title>
  9 | <link href="tabs.css" rel="stylesheet" type="text/css"/>
 10 | <script type="text/javascript" src="jquery.js"></script>
 11 | <script type="text/javascript" src="dynsections.js"></script>
 12 | <script type="text/javascript" src="clipboard.js"></script>
 13 | <link href="navtree.css" rel="stylesheet" type="text/css"/>
 14 | <script type="text/javascript" src="navtreedata.js"></script>
 15 | <script type="text/javascript" src="navtree.js"></script>
 16 | <script type="text/javascript" src="resize.js"></script>
 17 | <script type="text/javascript" src="cookie.js"></script>
 18 | <link href="search/search.css" rel="stylesheet" type="text/css"/>
 19 | <script type="text/javascript" src="search/searchdata.js"></script>
 20 | <script type="text/javascript" src="search/search.js"></script>
 21 | <script type="text/javascript">
 22 | /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 23 |   $(function() { init_search(); });
 24 | /* @license-end */
 25 | </script>
 26 | <link href="doxygen.css" rel="stylesheet" type="text/css" />
 27 | <link href="mimalloc-doxygen.css" rel="stylesheet" type="text/css"/>
 28 | </head>
 29 | <body>
 30 | <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
 31 | <div id="titlearea">
 32 | <table cellspacing="0" cellpadding="0">
 33 |  <tbody>
 34 |  <tr id="projectrow">
 35 |   <td id="projectlogo"><img alt="Logo" src="mimalloc-logo.svg"/></td>
 36 |   <td id="projectalign">
 37 |    <div id="projectname">mi-malloc<span id="projectnumber">&#160;1.8/2.1</span>
 38 |    </div>
 39 |   </td>
 40 |     <td>        <div id="MSearchBox" class="MSearchBoxInactive">
 41 |         <span class="left">
 42 |           <span id="MSearchSelect"                onmouseover="return searchBox.OnSearchSelectShow()"                onmouseout="return searchBox.OnSearchSelectHide()">&#160;</span>
 43 |           <input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"
 44 |                onfocus="searchBox.OnSearchFieldFocus(true)" 
 45 |                onblur="searchBox.OnSearchFieldFocus(false)" 
 46 |                onkeyup="searchBox.OnSearchFieldChange(event)"/>
 47 |           </span><span class="right">
 48 |             <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
 49 |           </span>
 50 |         </div>
 51 | </td>
 52 |  </tr>
 53 |  </tbody>
 54 | </table>
 55 | </div>
 56 | <!-- end header part -->
 57 | <!-- Generated by Doxygen 1.13.1 -->
 58 | <script type="text/javascript">
 59 | /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 60 | var searchBox = new SearchBox("searchBox", "search/",'.html');
 61 | /* @license-end */
 62 | </script>
 63 | <script type="text/javascript">
 64 | /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 65 | $(function() { codefold.init(0); });
 66 | /* @license-end */
 67 | </script>
 68 | </div><!-- top -->
 69 | <div id="side-nav" class="ui-resizable side-nav-resizable">
 70 |   <div id="nav-tree">
 71 |     <div id="nav-tree-contents">
 72 |       <div id="nav-sync" class="sync"></div>
 73 |     </div>
 74 |   </div>
 75 |   <div id="splitbar" style="-moz-user-select:none;" 
 76 |        class="ui-resizable-handle">
 77 |   </div>
 78 | </div>
 79 | <script type="text/javascript">
 80 | /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 81 | $(function(){initNavTree('bench.html',''); initResizable(true); });
 82 | /* @license-end */
 83 | </script>
 84 | <div id="doc-content">
 85 | <!-- window showing the filter options -->
 86 | <div id="MSearchSelectWindow"
 87 |      onmouseover="return searchBox.OnSearchSelectShow()"
 88 |      onmouseout="return searchBox.OnSearchSelectHide()"
 89 |      onkeydown="return searchBox.OnSearchSelectKey(event)">
 90 | </div>
 91 | 
 92 | <!-- iframe showing the search results (closed by default) -->
 93 | <div id="MSearchResultsWindow">
 94 | <div id="MSearchResults">
 95 | <div class="SRPage">
 96 | <div id="SRIndex">
 97 | <div id="SRResults"></div>
 98 | <div class="SRStatus" id="Loading">Loading...</div>
 99 | <div class="SRStatus" id="Searching">Searching...</div>
100 | <div class="SRStatus" id="NoMatches">No Matches</div>
101 | </div>
102 | </div>
103 | </div>
104 | </div>
105 | 
106 | <div><div class="header">
107 |   <div class="headertitle"><div class="title">Performance</div></div>
108 | </div><!--header-->
109 | <div class="contents">
110 | <div class="textblock"><p>We tested <em>mimalloc</em> against many other top allocators over a wide range of benchmarks, ranging from various real world programs to synthetic benchmarks that see how the allocator behaves under more extreme circumstances.</p>
111 | <p>In our benchmarks, <em>mimalloc</em> always outperforms all other leading allocators (<em>jemalloc</em>, <em>tcmalloc</em>, <em>Hoard</em>, etc) (Jan 2021), and usually uses less memory (up to 25% more in the worst case). A nice property is that it does <em>consistently</em> well over the wide range of benchmarks.</p>
112 | <p>See the <a href="https://github.com/microsoft/mimalloc#Performance">Performance</a> section in the <em>mimalloc</em> repository for benchmark results, or the the technical report for detailed benchmark results. </p>
113 | </div></div><!-- contents -->
114 | </div><!-- PageDoc -->
115 | </div><!-- doc-content -->
116 | <!-- start footer part -->
117 | <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
118 |   <ul>
119 |     <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
120 |   </ul>
121 | </div>
122 | </body>
123 | </html>
124 | 


--------------------------------------------------------------------------------
/docs/classes.html:
--------------------------------------------------------------------------------
  1 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2 | <html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
  3 | <head>
  4 | <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
  5 | <meta http-equiv="X-UA-Compatible" content="IE=11"/>
  6 | <meta name="generator" content="Doxygen 1.13.1"/>
  7 | <meta name="viewport" content="width=device-width, initial-scale=1"/>
  8 | <title>mi-malloc: Data Structure Index</title>
  9 | <link href="tabs.css" rel="stylesheet" type="text/css"/>
 10 | <script type="text/javascript" src="jquery.js"></script>
 11 | <script type="text/javascript" src="dynsections.js"></script>
 12 | <script type="text/javascript" src="clipboard.js"></script>
 13 | <link href="navtree.css" rel="stylesheet" type="text/css"/>
 14 | <script type="text/javascript" src="navtreedata.js"></script>
 15 | <script type="text/javascript" src="navtree.js"></script>
 16 | <script type="text/javascript" src="resize.js"></script>
 17 | <script type="text/javascript" src="cookie.js"></script>
 18 | <link href="search/search.css" rel="stylesheet" type="text/css"/>
 19 | <script type="text/javascript" src="search/searchdata.js"></script>
 20 | <script type="text/javascript" src="search/search.js"></script>
 21 | <script type="text/javascript">
 22 | /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 23 |   $(function() { init_search(); });
 24 | /* @license-end */
 25 | </script>
 26 | <link href="doxygen.css" rel="stylesheet" type="text/css" />
 27 | <link href="mimalloc-doxygen.css" rel="stylesheet" type="text/css"/>
 28 | </head>
 29 | <body>
 30 | <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
 31 | <div id="titlearea">
 32 | <table cellspacing="0" cellpadding="0">
 33 |  <tbody>
 34 |  <tr id="projectrow">
 35 |   <td id="projectlogo"><img alt="Logo" src="mimalloc-logo.svg"/></td>
 36 |   <td id="projectalign">
 37 |    <div id="projectname">mi-malloc<span id="projectnumber">&#160;1.8/2.1</span>
 38 |    </div>
 39 |   </td>
 40 |     <td>        <div id="MSearchBox" class="MSearchBoxInactive">
 41 |         <span class="left">
 42 |           <span id="MSearchSelect"                onmouseover="return searchBox.OnSearchSelectShow()"                onmouseout="return searchBox.OnSearchSelectHide()">&#160;</span>
 43 |           <input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"
 44 |                onfocus="searchBox.OnSearchFieldFocus(true)" 
 45 |                onblur="searchBox.OnSearchFieldFocus(false)" 
 46 |                onkeyup="searchBox.OnSearchFieldChange(event)"/>
 47 |           </span><span class="right">
 48 |             <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
 49 |           </span>
 50 |         </div>
 51 | </td>
 52 |  </tr>
 53 |  </tbody>
 54 | </table>
 55 | </div>
 56 | <!-- end header part -->
 57 | <!-- Generated by Doxygen 1.13.1 -->
 58 | <script type="text/javascript">
 59 | /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 60 | var searchBox = new SearchBox("searchBox", "search/",'.html');
 61 | /* @license-end */
 62 | </script>
 63 | <script type="text/javascript">
 64 | /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 65 | $(function() { codefold.init(0); });
 66 | /* @license-end */
 67 | </script>
 68 | </div><!-- top -->
 69 | <div id="side-nav" class="ui-resizable side-nav-resizable">
 70 |   <div id="nav-tree">
 71 |     <div id="nav-tree-contents">
 72 |       <div id="nav-sync" class="sync"></div>
 73 |     </div>
 74 |   </div>
 75 |   <div id="splitbar" style="-moz-user-select:none;" 
 76 |        class="ui-resizable-handle">
 77 |   </div>
 78 | </div>
 79 | <script type="text/javascript">
 80 | /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 81 | $(function(){initNavTree('classes.html',''); initResizable(true); });
 82 | /* @license-end */
 83 | </script>
 84 | <div id="doc-content">
 85 | <!-- window showing the filter options -->
 86 | <div id="MSearchSelectWindow"
 87 |      onmouseover="return searchBox.OnSearchSelectShow()"
 88 |      onmouseout="return searchBox.OnSearchSelectHide()"
 89 |      onkeydown="return searchBox.OnSearchSelectKey(event)">
 90 | </div>
 91 | 
 92 | <!-- iframe showing the search results (closed by default) -->
 93 | <div id="MSearchResultsWindow">
 94 | <div id="MSearchResults">
 95 | <div class="SRPage">
 96 | <div id="SRIndex">
 97 | <div id="SRResults"></div>
 98 | <div class="SRStatus" id="Loading">Loading...</div>
 99 | <div class="SRStatus" id="Searching">Searching...</div>
100 | <div class="SRStatus" id="NoMatches">No Matches</div>
101 | </div>
102 | </div>
103 | </div>
104 | </div>
105 | 
106 | <div class="header">
107 |   <div class="headertitle"><div class="title">Data Structure Index</div></div>
108 | </div><!--header-->
109 | <div class="contents">
110 | <div class="qindex"><a class="qindex" href="#letter_M">M</a></div>
111 | <div class="classindex">
112 | <dl class="classindex even">
113 | <dt class="alphachar"><a id="letter_M" name="letter_M">M</a></dt>
114 | <dd><a class="el" href="group__analysis.html#structmi__heap__area__t">mi_heap_area_t</a></dd><dd><a class="el" href="group__cpp.html#structmi__stl__allocator">mi_stl_allocator</a></dd></dl>
115 | </div>
116 | </div><!-- contents -->
117 | </div><!-- doc-content -->
118 | <!-- start footer part -->
119 | <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
120 |   <ul>
121 |     <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1 </li>
122 |   </ul>
123 | </div>
124 | </body>
125 | </html>
126 | 


--------------------------------------------------------------------------------
/docs/clipboard.js:
--------------------------------------------------------------------------------
 1 | /**
 2 | 
 3 | The code below is based on the Doxygen Awesome project, see
 4 | https://github.com/jothepro/doxygen-awesome-css
 5 | 
 6 | MIT License
 7 | 
 8 | Copyright (c) 2021 - 2022 jothepro
 9 | 
10 | Permission is hereby granted, free of charge, to any person obtaining a copy
11 | of this software and associated documentation files (the "Software"), to deal
12 | in the Software without restriction, including without limitation the rights
13 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
14 | copies of the Software, and to permit persons to whom the Software is
15 | furnished to do so, subject to the following conditions:
16 | 
17 | The above copyright notice and this permission notice shall be included in all
18 | copies or substantial portions of the Software.
19 | 
20 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
21 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
22 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
23 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
24 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
25 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
26 | SOFTWARE.
27 | 
28 | */
29 | 
30 | let clipboard_title = "Copy to clipboard"
31 | let clipboard_icon = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"/></svg>`
32 | let clipboard_successIcon = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41L9 16.17z"/></svg>`
33 | let clipboard_successDuration = 1000
34 | 
35 | $(function() {
36 |   if(navigator.clipboard) {
37 |     const fragments = document.getElementsByClassName("fragment")
38 |     for(const fragment of fragments) {
39 |       const clipboard_div = document.createElement("div")
40 |       clipboard_div.classList.add("clipboard")
41 |       clipboard_div.innerHTML = clipboard_icon
42 |       clipboard_div.title = clipboard_title
43 |       $(clipboard_div).click(function() {
44 |         const content = this.parentNode.cloneNode(true)
45 |         // filter out line number and folded fragments from file listings
46 |         content.querySelectorAll(".lineno, .ttc, .foldclosed").forEach((node) => { node.remove() })
47 |         let text = content.textContent
48 |         // remove trailing newlines and trailing spaces from empty lines
49 |         text = text.replace(/^\s*\n/gm,'\n').replace(/\n*$/,'')
50 |         navigator.clipboard.writeText(text);
51 |         this.classList.add("success")
52 |         this.innerHTML = clipboard_successIcon
53 |         window.setTimeout(() => { // switch back to normal icon after timeout
54 |             this.classList.remove("success")
55 |             this.innerHTML = clipboard_icon
56 |         }, clipboard_successDuration);
57 |       })
58 |       fragment.insertBefore(clipboard_div, fragment.firstChild)
59 |     }
60 |   }
61 | })
62 | 


--------------------------------------------------------------------------------
/docs/closed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mimalloc/09a27098aa6e9286518bd9c74e6ffa7199c3f04e/docs/closed.png


--------------------------------------------------------------------------------
/docs/cookie.js:
--------------------------------------------------------------------------------
 1 | /*!
 2 |  Cookie helper functions
 3 |  Copyright (c) 2023 Dimitri van Heesch
 4 |  Released under MIT license.
 5 | */
 6 | let Cookie = {
 7 |   cookie_namespace: 'doxygen_',
 8 | 
 9 |   readSetting(cookie,defVal) {
10 |     if (window.chrome) {
11 |       const val = localStorage.getItem(this.cookie_namespace+cookie) ||
12 |                   sessionStorage.getItem(this.cookie_namespace+cookie);
13 |       if (val) return val;
14 |     } else {
15 |       let myCookie = this.cookie_namespace+cookie+"=";
16 |       if (document.cookie) {
17 |         const index = document.cookie.indexOf(myCookie);
18 |         if (index != -1) {
19 |           const valStart = index + myCookie.length;
20 |           let valEnd = document.cookie.indexOf(";", valStart);
21 |           if (valEnd == -1) {
22 |             valEnd = document.cookie.length;
23 |           }
24 |           return document.cookie.substring(valStart, valEnd);
25 |         }
26 |       }
27 |     }
28 |     return defVal;
29 |   },
30 | 
31 |   writeSetting(cookie,val,days=10*365) { // default days='forever', 0=session cookie, -1=delete
32 |     if (window.chrome) {
33 |       if (days==0) {
34 |         sessionStorage.setItem(this.cookie_namespace+cookie,val);
35 |       } else {
36 |         localStorage.setItem(this.cookie_namespace+cookie,val);
37 |       }
38 |     } else {
39 |       let date = new Date();
40 |       date.setTime(date.getTime()+(days*24*60*60*1000));
41 |       const expiration = days!=0 ? "expires="+date.toGMTString()+";" : "";
42 |       document.cookie = this.cookie_namespace + cookie + "=" +
43 |                         val + "; SameSite=Lax;" + expiration + "path=/";
44 |     }
45 |   },
46 | 
47 |   eraseSetting(cookie) {
48 |     if (window.chrome) {
49 |       if (localStorage.getItem(this.cookie_namespace+cookie)) {
50 |         localStorage.removeItem(this.cookie_namespace+cookie);
51 |       } else if (sessionStorage.getItem(this.cookie_namespace+cookie)) {
52 |         sessionStorage.removeItem(this.cookie_namespace+cookie);
53 |       }
54 |     } else {
55 |       this.writeSetting(cookie,'',-1);
56 |     }
57 |   },
58 | }
59 | 


--------------------------------------------------------------------------------
/docs/doc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mimalloc/09a27098aa6e9286518bd9c74e6ffa7199c3f04e/docs/doc.png


--------------------------------------------------------------------------------
/docs/doxygen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mimalloc/09a27098aa6e9286518bd9c74e6ffa7199c3f04e/docs/doxygen.png


--------------------------------------------------------------------------------
/docs/folderclosed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mimalloc/09a27098aa6e9286518bd9c74e6ffa7199c3f04e/docs/folderclosed.png


--------------------------------------------------------------------------------
/docs/folderopen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mimalloc/09a27098aa6e9286518bd9c74e6ffa7199c3f04e/docs/folderopen.png


--------------------------------------------------------------------------------
/docs/group__aligned.js:
--------------------------------------------------------------------------------
 1 | var group__aligned =
 2 | [
 3 |     [ "mi_calloc_aligned", "group__aligned.html#ga424ef386fb1f9f8e0a86ab53f16eaaf1", null ],
 4 |     [ "mi_calloc_aligned_at", "group__aligned.html#ga977f96bd2c5c141bcd70e6685c90d6c3", null ],
 5 |     [ "mi_malloc_aligned", "group__aligned.html#ga69578ff1a98ca16e1dcd02c0995cd65c", null ],
 6 |     [ "mi_malloc_aligned_at", "group__aligned.html#ga2022f71b95a7cd6cce1b6e07752ae8ca", null ],
 7 |     [ "mi_realloc_aligned", "group__aligned.html#ga5d7a46d054b4d7abe9d8d2474add2edf", null ],
 8 |     [ "mi_realloc_aligned_at", "group__aligned.html#gad06dcf2bb8faadb2c8ea61ee5d24bbf6", null ],
 9 |     [ "mi_zalloc_aligned", "group__aligned.html#gaac7d0beb782f9b9ac31f47492b130f82", null ],
10 |     [ "mi_zalloc_aligned_at", "group__aligned.html#ga7c1778805ce50ebbf02ccbd5e39d5dba", null ]
11 | ];


--------------------------------------------------------------------------------
/docs/group__analysis.js:
--------------------------------------------------------------------------------
 1 | var group__analysis =
 2 | [
 3 |     [ "mi_heap_area_t", "group__analysis.html#structmi__heap__area__t", [
 4 |       [ "block_size", "group__analysis.html#a332a6c14d736a99699d5453a1cb04b41", null ],
 5 |       [ "blocks", "group__analysis.html#ae0085e6e1cf059a4eb7767e30e9991b8", null ],
 6 |       [ "committed", "group__analysis.html#ab47526df656d8837ec3e97f11b83f835", null ],
 7 |       [ "full_block_size", "group__analysis.html#ab53664e31d7fe2564f8d42041ef75cb3", null ],
 8 |       [ "heap_tag", "group__analysis.html#a2b7a0c92ece8daf46b558efc990ebdc1", null ],
 9 |       [ "reserved", "group__analysis.html#ae848a3e6840414891035423948ca0383", null ],
10 |       [ "used", "group__analysis.html#ab820302c5cd0df133eb8e51650a008b4", null ]
11 |     ] ],
12 |     [ "mi_block_visit_fun", "group__analysis.html#ga8255dc9371e6b299d9802a610c4e34ec", null ],
13 |     [ "mi_abandoned_visit_blocks", "group__analysis.html#ga6a4865a887b2ec5247854af61562503c", null ],
14 |     [ "mi_check_owned", "group__analysis.html#ga628c237489c2679af84a4d0d143b3dd5", null ],
15 |     [ "mi_heap_check_owned", "group__analysis.html#ga0d67c1789faaa15ff366c024fcaf6377", null ],
16 |     [ "mi_heap_contains_block", "group__analysis.html#gaa862aa8ed8d57d84cae41fc1022d71af", null ],
17 |     [ "mi_heap_visit_blocks", "group__analysis.html#ga70c46687dc6e9dc98b232b02646f8bed", null ]
18 | ];


--------------------------------------------------------------------------------
/docs/group__analysis_structmi__heap__area__t.js:
--------------------------------------------------------------------------------
 1 | var group__analysis_structmi__heap__area__t =
 2 | [
 3 |     [ "block_size", "group__analysis.html#a332a6c14d736a99699d5453a1cb04b41", null ],
 4 |     [ "blocks", "group__analysis.html#ae0085e6e1cf059a4eb7767e30e9991b8", null ],
 5 |     [ "committed", "group__analysis.html#ab47526df656d8837ec3e97f11b83f835", null ],
 6 |     [ "full_block_size", "group__analysis.html#ab53664e31d7fe2564f8d42041ef75cb3", null ],
 7 |     [ "heap_tag", "group__analysis.html#a2b7a0c92ece8daf46b558efc990ebdc1", null ],
 8 |     [ "reserved", "group__analysis.html#ae848a3e6840414891035423948ca0383", null ],
 9 |     [ "used", "group__analysis.html#ab820302c5cd0df133eb8e51650a008b4", null ]
10 | ];


--------------------------------------------------------------------------------
/docs/group__cpp.js:
--------------------------------------------------------------------------------
 1 | var group__cpp =
 2 | [
 3 |     [ "mi_stl_allocator< T >", "group__cpp.html#structmi__stl__allocator", null ],
 4 |     [ "mi_new", "group__cpp.html#ga633d96e3bc7011f960df9f3b2731fc6a", null ],
 5 |     [ "mi_new_aligned", "group__cpp.html#ga79c54da0b4b4ce9fcc11d2f6ef6675f8", null ],
 6 |     [ "mi_new_aligned_nothrow", "group__cpp.html#ga92ae00b6dd64406c7e64557711ec04b7", null ],
 7 |     [ "mi_new_n", "group__cpp.html#gadd11b85c15d21d308386844b5233856c", null ],
 8 |     [ "mi_new_nothrow", "group__cpp.html#ga5cb4f120d1f7296074256215aa9a9e54", null ],
 9 |     [ "mi_new_realloc", "group__cpp.html#ga6867d89baf992728e0cc20a1f47db4d0", null ],
10 |     [ "mi_new_reallocn", "group__cpp.html#gaace912ce086682d56f3ce9f7638d9d67", null ]
11 | ];


--------------------------------------------------------------------------------
/docs/group__extended.js:
--------------------------------------------------------------------------------
 1 | var group__extended =
 2 | [
 3 |     [ "MI_SMALL_SIZE_MAX", "group__extended.html#ga1ea64283508718d9d645c38efc2f4305", null ],
 4 |     [ "mi_arena_id_t", "group__extended.html#ga99fe38650d0b02e0e0f89ee024db91d3", null ],
 5 |     [ "mi_deferred_free_fun", "group__extended.html#ga292a45f7dbc7cd23c5352ce1f0002816", null ],
 6 |     [ "mi_error_fun", "group__extended.html#ga83fc6a688b322261e1c2deab000b0591", null ],
 7 |     [ "mi_output_fun", "group__extended.html#gadf31cea7d0332a81c8b882cbbdbadb8d", null ],
 8 |     [ "mi_subproc_id_t", "group__extended.html#ga8c0bcd1fee27c7641e9c3c0d991b3b7d", null ],
 9 |     [ "mi_arena_area", "group__extended.html#ga9a25a00a22151619a0be91a10af7787f", null ],
10 |     [ "mi_collect", "group__extended.html#ga421430e2226d7d468529cec457396756", null ],
11 |     [ "mi_debug_show_arenas", "group__extended.html#gad7439207f8f71fb6c382a9ea20b997e7", null ],
12 |     [ "mi_good_size", "group__extended.html#gac057927cd06c854b45fe7847e921bd47", null ],
13 |     [ "mi_heap_new_ex", "group__extended.html#ga3ae360583f4351aa5267ee7e43008faf", null ],
14 |     [ "mi_heap_new_in_arena", "group__extended.html#gaaf2d9976576d5efd5544be12848af949", null ],
15 |     [ "mi_is_in_heap_region", "group__extended.html#ga5f071b10d4df1c3658e04e7fd67a94e6", null ],
16 |     [ "mi_is_redirected", "group__extended.html#gaad25050b19f30cd79397b227e0157a3f", null ],
17 |     [ "mi_malloc_small", "group__extended.html#ga7f050bc6b897da82692174f5fce59cde", null ],
18 |     [ "mi_manage_os_memory", "group__extended.html#ga4c6486a1fdcd7a423b5f25fe4be8e0cf", null ],
19 |     [ "mi_manage_os_memory_ex", "group__extended.html#ga41ce8525d77bbb60f618fa1029994f6e", null ],
20 |     [ "mi_process_info", "group__extended.html#ga7d862c2affd5790381da14eb102a364d", null ],
21 |     [ "mi_register_deferred_free", "group__extended.html#ga3460a6ca91af97be4058f523d3cb8ece", null ],
22 |     [ "mi_register_error", "group__extended.html#gaa1d55e0e894be240827e5d87ec3a1f45", null ],
23 |     [ "mi_register_output", "group__extended.html#gae5b17ff027cd2150b43a33040250cf3f", null ],
24 |     [ "mi_reserve_huge_os_pages_at", "group__extended.html#ga7795a13d20087447281858d2c771cca1", null ],
25 |     [ "mi_reserve_huge_os_pages_at_ex", "group__extended.html#ga591aab1c2bc2ca920e33f0f9f9cb5c52", null ],
26 |     [ "mi_reserve_huge_os_pages_interleave", "group__extended.html#ga3132f521fb756fc0e8ec0b74fb58df50", null ],
27 |     [ "mi_reserve_os_memory", "group__extended.html#ga00ec3324b6b2591c7fe3677baa30a767", null ],
28 |     [ "mi_reserve_os_memory_ex", "group__extended.html#ga32f519797fd9a81acb4f52d36e6d751b", null ],
29 |     [ "mi_stats_merge", "group__extended.html#ga854b1de8cb067c7316286c28b2fcd3d1", null ],
30 |     [ "mi_stats_print", "group__extended.html#ga2d126e5c62d3badc35445e5d84166df2", null ],
31 |     [ "mi_stats_print_out", "group__extended.html#ga537f13b299ddf801e49a5a94fde02c79", null ],
32 |     [ "mi_stats_reset", "group__extended.html#ga3bb8468b8cfcc6e2a61d98aee85c5f99", null ],
33 |     [ "mi_subproc_add_current_thread", "group__extended.html#gadbc53414eb68b275588ec001ce1ddc7c", null ],
34 |     [ "mi_subproc_delete", "group__extended.html#gaa7d263e9429bac9ac8345c9d25de610e", null ],
35 |     [ "mi_subproc_main", "group__extended.html#ga2ecba0d7ebdc99e71bb985c4a1609806", null ],
36 |     [ "mi_subproc_new", "group__extended.html#ga8068cac328e41fa2170faef707315243", null ],
37 |     [ "mi_thread_done", "group__extended.html#ga0ae4581e85453456a0d658b2b98bf7bf", null ],
38 |     [ "mi_thread_init", "group__extended.html#gaf8e73efc2cbca9ebfdfb166983a04c17", null ],
39 |     [ "mi_thread_stats_print_out", "group__extended.html#gab1dac8476c46cb9eecab767eb40c1525", null ],
40 |     [ "mi_usable_size", "group__extended.html#ga089c859d9eddc5f9b4bd946cd53cebee", null ],
41 |     [ "mi_zalloc_small", "group__extended.html#ga51c47637e81df0e2f13a2d7a2dec123e", null ]
42 | ];


--------------------------------------------------------------------------------
/docs/group__heap.js:
--------------------------------------------------------------------------------
 1 | var group__heap =
 2 | [
 3 |     [ "mi_heap_t", "group__heap.html#ga34a47cde5a5b38c29f1aa3c5e76943c2", null ],
 4 |     [ "mi_heap_calloc", "group__heap.html#gac0098aaf231d3e9586c73136d5df95da", null ],
 5 |     [ "mi_heap_calloc_aligned", "group__heap.html#gacafcc26df827c7a7de5e850217566108", null ],
 6 |     [ "mi_heap_calloc_aligned_at", "group__heap.html#gaa42ec2079989c4374f2c331d9b35f4e4", null ],
 7 |     [ "mi_heap_collect", "group__heap.html#ga7922f7495cde30b1984d0e6072419298", null ],
 8 |     [ "mi_heap_delete", "group__heap.html#ga2ab1af8d438819b55319c7ef51d1e409", null ],
 9 |     [ "mi_heap_destroy", "group__heap.html#ga9f9c0844edb9717f4feacd79116b8e0d", null ],
10 |     [ "mi_heap_get_backing", "group__heap.html#gac6ac9f0e7be9ab4ff70acfc8dad1235a", null ],
11 |     [ "mi_heap_get_default", "group__heap.html#ga14c667a6e2c5d28762d8cb7d4e057909", null ],
12 |     [ "mi_heap_malloc", "group__heap.html#gab374e206c7034e0d899fb934e4f4a863", null ],
13 |     [ "mi_heap_malloc_aligned", "group__heap.html#ga33f4f05b7fea7af2113c62a4bf882cc5", null ],
14 |     [ "mi_heap_malloc_aligned_at", "group__heap.html#gae7ffc045c3996497a7f3a5f6fe7b8aaa", null ],
15 |     [ "mi_heap_malloc_small", "group__heap.html#ga012c5c8abe22b10043de39ff95909541", null ],
16 |     [ "mi_heap_mallocn", "group__heap.html#gab0f755c0b21c387fe8e9024200faa372", null ],
17 |     [ "mi_heap_new", "group__heap.html#gaa718bb226ec0546ba6d1b6cb32179f3a", null ],
18 |     [ "mi_heap_realloc", "group__heap.html#gac5252d6a2e510bd349e4fcb452e6a93a", null ],
19 |     [ "mi_heap_realloc_aligned", "group__heap.html#gaccf8c249872f30bf1c2493a09197d734", null ],
20 |     [ "mi_heap_realloc_aligned_at", "group__heap.html#ga6df988a7219d5707f010d5f3eb0dc3f5", null ],
21 |     [ "mi_heap_reallocf", "group__heap.html#gae7cd171425bee04c683c65a3701f0b4a", null ],
22 |     [ "mi_heap_reallocn", "group__heap.html#gaccf7bfe10ce510a000d3547d9cf7fa29", null ],
23 |     [ "mi_heap_realpath", "group__heap.html#ga55545a3ec6da29c5b4f62e540ecac1e2", null ],
24 |     [ "mi_heap_set_default", "group__heap.html#ga349b677dec7da5eacdbc7a385bd62a4a", null ],
25 |     [ "mi_heap_strdup", "group__heap.html#ga5754e09ccc51dd6bc73885bb6ea21b7a", null ],
26 |     [ "mi_heap_strndup", "group__heap.html#gad224df78f1fbee942df8adf023e12cf3", null ],
27 |     [ "mi_heap_zalloc", "group__heap.html#gabebc796399619d964d8db77aa835e8c1", null ],
28 |     [ "mi_heap_zalloc_aligned", "group__heap.html#ga6466bde8b5712aa34e081a8317f9f471", null ],
29 |     [ "mi_heap_zalloc_aligned_at", "group__heap.html#ga484e3d01cd174f78c7e53370e5a7c819", null ]
30 | ];


--------------------------------------------------------------------------------
/docs/group__malloc.js:
--------------------------------------------------------------------------------
 1 | var group__malloc =
 2 | [
 3 |     [ "mi_calloc", "group__malloc.html#ga6686568014b54d1e6c7ac64a076e4f56", null ],
 4 |     [ "mi_expand", "group__malloc.html#ga19299856216cfbb08e2628593654dfb0", null ],
 5 |     [ "mi_free", "group__malloc.html#gaf2c7b89c327d1f60f59e68b9ea644d95", null ],
 6 |     [ "mi_malloc", "group__malloc.html#gae1dd97b542420c87ae085e822b1229e8", null ],
 7 |     [ "mi_mallocn", "group__malloc.html#ga61f46bade3db76ca24aaafedc40de7b6", null ],
 8 |     [ "mi_realloc", "group__malloc.html#ga0621af6a5e3aa384e6a1b548958bf583", null ],
 9 |     [ "mi_reallocf", "group__malloc.html#ga4dc3a4067037b151a64629fe8a332641", null ],
10 |     [ "mi_reallocn", "group__malloc.html#ga8bddfb4a1270a0854bbcf44cb3980467", null ],
11 |     [ "mi_realpath", "group__malloc.html#ga94c3afcc086e85d75a57e9f76b9b71dd", null ],
12 |     [ "mi_recalloc", "group__malloc.html#ga23a0fbb452b5dce8e31fab1a1958cacc", null ],
13 |     [ "mi_strdup", "group__malloc.html#ga245ac90ebc2cfdd17de599e5fea59889", null ],
14 |     [ "mi_strndup", "group__malloc.html#ga486d0d26b3b3794f6d1cdb41a9aed92d", null ],
15 |     [ "mi_zalloc", "group__malloc.html#gae6e38c4403247a7b40d80419e093bfb8", null ]
16 | ];


--------------------------------------------------------------------------------
/docs/group__options.js:
--------------------------------------------------------------------------------
 1 | var group__options =
 2 | [
 3 |     [ "mi_option_t", "group__options.html#gafebf7ed116adb38ae5218bc3ce06884c", [
 4 |       [ "mi_option_show_errors", "group__options.html#ggafebf7ed116adb38ae5218bc3ce06884cafbf4822e5c00732c5984b32a032837f0", null ],
 5 |       [ "mi_option_show_stats", "group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca0957ef73b2550764b4840edf48422fda", null ],
 6 |       [ "mi_option_verbose", "group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca7c8b7bf5281c581bad64f5daa6442777", null ],
 7 |       [ "mi_option_max_errors", "group__options.html#ggafebf7ed116adb38ae5218bc3ce06884caec6ecbe29d46a48205ed8823a8a52a6a", null ],
 8 |       [ "mi_option_max_warnings", "group__options.html#ggafebf7ed116adb38ae5218bc3ce06884caf9595921087e942602ee079158762665", null ],
 9 |       [ "mi_option_reserve_huge_os_pages", "group__options.html#ggafebf7ed116adb38ae5218bc3ce06884caca7ed041be3b0b9d0b82432c7bf41af2", null ],
10 |       [ "mi_option_reserve_huge_os_pages_at", "group__options.html#ggafebf7ed116adb38ae5218bc3ce06884caa13e7926d4339d2aa6fbf61d4473fd5c", null ],
11 |       [ "mi_option_reserve_os_memory", "group__options.html#ggafebf7ed116adb38ae5218bc3ce06884cafbf4999c828cf79a0fb2de65d23f7333", null ],
12 |       [ "mi_option_allow_large_os_pages", "group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca7cc4804ced69004fa42a9a136a9ba556", null ],
13 |       [ "mi_option_purge_decommits", "group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca9d15c5e3d2115eef681c17e4dd5ab9a4", null ],
14 |       [ "mi_option_arena_reserve", "group__options.html#ggafebf7ed116adb38ae5218bc3ce06884cab1c88e23ae290bbeec824038a97959de", null ],
15 |       [ "mi_option_os_tag", "group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca4b74ae2a69e445de6c2361b73c1d14bf", null ],
16 |       [ "mi_option_retry_on_oom", "group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca8f51df355bf6651db899e6085b54865e", null ],
17 |       [ "mi_option_eager_commit", "group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca1e8de72c93da7ff22d91e1e27b52ac2b", null ],
18 |       [ "mi_option_eager_commit_delay", "group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca17a190c25be381142d87e0468c4c068c", null ],
19 |       [ "mi_option_arena_eager_commit", "group__options.html#ggafebf7ed116adb38ae5218bc3ce06884cafd0c5ddbc4b59fd8b5216871728167a5", null ],
20 |       [ "mi_option_abandoned_page_purge", "group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca11e62ed69200a489a5be955582078c0c", null ],
21 |       [ "mi_option_purge_delay", "group__options.html#ggafebf7ed116adb38ae5218bc3ce06884cadd351e615acd8563529c20a347be7290", null ],
22 |       [ "mi_option_use_numa_nodes", "group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca0ac33a18f6b659fcfaf44efb0bab1b74", null ],
23 |       [ "mi_option_disallow_os_alloc", "group__options.html#ggafebf7ed116adb38ae5218bc3ce06884cadcfb5a09580361b1be65901d2d812de6", null ],
24 |       [ "mi_option_limit_os_alloc", "group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca9fa61bd9668479f8452d2195759444cc", null ],
25 |       [ "mi_option_max_segment_reclaim", "group__options.html#ggafebf7ed116adb38ae5218bc3ce06884caa9ad9005d7017c8c30ad2d6ba31db909", null ],
26 |       [ "mi_option_destroy_on_exit", "group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca6364331e305e7d3c0218b058ff3afc88", null ],
27 |       [ "mi_option_arena_purge_mult", "group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca8236501f1ab45d26e6fd885d191a2b5e", null ],
28 |       [ "mi_option_abandoned_reclaim_on_free", "group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca009e4b5684922ce664d73d2a8e1698d9", null ],
29 |       [ "mi_option_purge_extend_delay", "group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca02005f164bdf03f5f00c5be726adf487", null ],
30 |       [ "mi_option_disallow_arena_alloc", "group__options.html#ggafebf7ed116adb38ae5218bc3ce06884caeae1696100e4057ffc4182730cc04e40", null ],
31 |       [ "mi_option_visit_abandoned", "group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca38c67733a3956a1f4eeaca89fab9e78e", null ],
32 |       [ "_mi_option_last", "group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca5b4357b74be0d87568036c32eb1a2e4a", null ]
33 |     ] ],
34 |     [ "mi_option_disable", "group__options.html#gaebf6ff707a2e688ebb1a2296ca564054", null ],
35 |     [ "mi_option_enable", "group__options.html#ga04180ae41b0d601421dd62ced40ca050", null ],
36 |     [ "mi_option_get", "group__options.html#ga7e8af195cc81d3fa64ccf2662caa565a", null ],
37 |     [ "mi_option_get_clamp", "group__options.html#ga96ad9c406338bd314cfe878cfc9bf723", null ],
38 |     [ "mi_option_get_size", "group__options.html#ga274db5a6ac87cc24ef0b23e7006ed02c", null ],
39 |     [ "mi_option_is_enabled", "group__options.html#ga459ad98f18b3fc9275474807fe0ca188", null ],
40 |     [ "mi_option_set", "group__options.html#gaf84921c32375e25754dc2ee6a911fa60", null ],
41 |     [ "mi_option_set_default", "group__options.html#ga7ef623e440e6e5545cb08c94e71e4b90", null ],
42 |     [ "mi_option_set_enabled", "group__options.html#ga9a13d05fcb77489cb06d4d017ebd8bed", null ],
43 |     [ "mi_option_set_enabled_default", "group__options.html#ga65518b69ec5d32336b50e07f74b3f629", null ]
44 | ];


--------------------------------------------------------------------------------
/docs/group__posix.js:
--------------------------------------------------------------------------------
 1 | var group__posix =
 2 | [
 3 |     [ "mi__expand", "group__posix.html#ga66bcfeb4faedbb42b796bc680821ef84", null ],
 4 |     [ "mi__posix_memalign", "group__posix.html#gad5a69c8fea96aa2b7a7c818c2130090a", null ],
 5 |     [ "mi_aligned_alloc", "group__posix.html#ga430ed1513f0571ff83be00ec58a98ee0", null ],
 6 |     [ "mi_aligned_offset_recalloc", "group__posix.html#ga16570deddd559001b44953eedbad0084", null ],
 7 |     [ "mi_aligned_recalloc", "group__posix.html#gaf82cbb4b4f24acf723348628451798d3", null ],
 8 |     [ "mi_cfree", "group__posix.html#ga705dc7a64bffacfeeb0141501a5c35d7", null ],
 9 |     [ "mi_dupenv_s", "group__posix.html#gab41369c1a1da7504013a7a0b1d4dd958", null ],
10 |     [ "mi_free_aligned", "group__posix.html#ga0d28d5cf61e6bfbb18c63092939fe5c9", null ],
11 |     [ "mi_free_size", "group__posix.html#gae01389eedab8d67341ff52e2aad80ebb", null ],
12 |     [ "mi_free_size_aligned", "group__posix.html#ga72e9d7ffb5fe94d69bc722c8506e27bc", null ],
13 |     [ "mi_malloc_good_size", "group__posix.html#ga9d23ac7885fed7413c11d8e0ffa31071", null ],
14 |     [ "mi_malloc_size", "group__posix.html#ga4531c9e775bb3ae12db57c1ba8a5d7de", null ],
15 |     [ "mi_malloc_usable_size", "group__posix.html#ga06d07cf357bbac5c73ba5d0c0c421e17", null ],
16 |     [ "mi_mbsdup", "group__posix.html#ga7b82a44094fdec4d2084eb4288a979b0", null ],
17 |     [ "mi_memalign", "group__posix.html#ga726867f13fd29ca36064954c0285b1d8", null ],
18 |     [ "mi_posix_memalign", "group__posix.html#gacff84f226ba9feb2031b8992e5579447", null ],
19 |     [ "mi_pvalloc", "group__posix.html#ga644bebccdbb2821542dd8c7e7641f476", null ],
20 |     [ "mi_reallocarr", "group__posix.html#ga7e1934d60a3e697950eeb48e042bfad5", null ],
21 |     [ "mi_reallocarray", "group__posix.html#gadfeccb72748a2f6305474a37d9d57bce", null ],
22 |     [ "mi_valloc", "group__posix.html#ga50cafb9722020402f065de93799f64ca", null ],
23 |     [ "mi_wcsdup", "group__posix.html#gaa9fd7f25c9ac3a20e89b33bd6e383fcf", null ],
24 |     [ "mi_wdupenv_s", "group__posix.html#ga6ac6a6a8f3c96f1af24bb8d0439cbbd1", null ]
25 | ];


--------------------------------------------------------------------------------
/docs/group__typed.js:
--------------------------------------------------------------------------------
 1 | var group__typed =
 2 | [
 3 |     [ "mi_calloc_tp", "group__typed.html#gae80c47c9d4cab10961fff1a8ac98fc07", null ],
 4 |     [ "mi_heap_calloc_tp", "group__typed.html#ga4e5d1f1707c90e5f55e023ac5f45fe74", null ],
 5 |     [ "mi_heap_malloc_tp", "group__typed.html#ga653bcb24ac495bc19940ecd6898f9cd7", null ],
 6 |     [ "mi_heap_mallocn_tp", "group__typed.html#ga6b75cb9c4b9c647661d0924552dc6e83", null ],
 7 |     [ "mi_heap_reallocn_tp", "group__typed.html#gaf213d5422ec35e7f6caad827c79bc948", null ],
 8 |     [ "mi_heap_recalloc_tp", "group__typed.html#ga3e50a1600958fcaf1a7f3560c9174f9e", null ],
 9 |     [ "mi_heap_zalloc_tp", "group__typed.html#gad6e87e86e994aa14416ae9b5d4c188fe", null ],
10 |     [ "mi_malloc_tp", "group__typed.html#ga0619a62c5fd886f1016030abe91f0557", null ],
11 |     [ "mi_mallocn_tp", "group__typed.html#gae5cb6e0fafc9f23169c5622e077afe8b", null ],
12 |     [ "mi_reallocn_tp", "group__typed.html#ga1158b49a55dfa81f58a4426a7578f523", null ],
13 |     [ "mi_zalloc_tp", "group__typed.html#gac77a61bdaf680a803785fe307820b48c", null ]
14 | ];


--------------------------------------------------------------------------------
/docs/group__zeroinit.js:
--------------------------------------------------------------------------------
 1 | var group__zeroinit =
 2 | [
 3 |     [ "mi_heap_recalloc", "group__zeroinit.html#gad1a0d325d930eeb80f25e3fea37aacde", null ],
 4 |     [ "mi_heap_recalloc_aligned", "group__zeroinit.html#ga87ddd674bf1c67237d780d0b9e0f0f32", null ],
 5 |     [ "mi_heap_recalloc_aligned_at", "group__zeroinit.html#ga07b5bcbaf00d0d2e598c232982588496", null ],
 6 |     [ "mi_heap_rezalloc", "group__zeroinit.html#ga8d8b7ebb24b513cd84d1a696048da60d", null ],
 7 |     [ "mi_heap_rezalloc_aligned", "group__zeroinit.html#ga5129f6dc46ee1613d918820a8a0533a7", null ],
 8 |     [ "mi_heap_rezalloc_aligned_at", "group__zeroinit.html#ga2bafa79c3f98ea74882349d44cffa5d9", null ],
 9 |     [ "mi_recalloc_aligned", "group__zeroinit.html#ga3e2169b48683aa0ab64f813fd68d839e", null ],
10 |     [ "mi_recalloc_aligned_at", "group__zeroinit.html#gaae25e4ddedd4e0fb61b1a8bd5d452750", null ],
11 |     [ "mi_rezalloc", "group__zeroinit.html#gadfd34cd7b4f2bbda7ae06367a6360756", null ],
12 |     [ "mi_rezalloc_aligned", "group__zeroinit.html#ga4d02404fe1e7db00beb65f185e012caa", null ],
13 |     [ "mi_rezalloc_aligned_at", "group__zeroinit.html#ga6843a88285bbfcc3bdfccc60aafd1270", null ]
14 | ];


--------------------------------------------------------------------------------
/docs/mimalloc-doxygen.css:
--------------------------------------------------------------------------------
 1 | #projectlogo img {
 2 | 	padding: 1ex;
 3 | }
 4 | tt, code, kbd, samp, div.memproto, div.fragment, div.line, table.memname {
 5 | 	font-family: Consolas, Monaco, Inconsolata, "Courier New", monospace;
 6 | }
 7 | .image img, .textblock img {
 8 | 	max-width: 99%;
 9 | 	max-height: 350px;
10 | }
11 | table.memname, .memname{
12 | 	font-weight: bold;
13 | }
14 | code {
15 | 	background-color: #EEE;
16 | 	padding: 0ex 0.25ex;
17 | }
18 | body {
19 | 	margin: 1ex 1ex 0ex 1ex;
20 | 	border: 1px solid black;
21 | }
22 | .contents table, .contents div, .contents p, .contents dl {
23 | 	font-size: 16px;
24 | 	line-height: 1.44;
25 | }
26 | body #nav-tree .label {
27 | 	font-size: 14px;
28 | }
29 | a{
30 | 	text-decoration: underline;
31 | }
32 | #side-nav {
33 | 	margin-left: 1ex;
34 | 	border-left: 1px solid black;
35 | }
36 | #nav-tree {
37 | 	padding-left: 1ex;
38 | }
39 | #nav-path {
40 | 	display: none;
41 | }
42 | div.fragment {
43 | 	background-color: #EEE;
44 | 	padding: 0.25ex 0.5ex;
45 | 	border-color: black;
46 | }
47 | #nav-sync img {
48 | 	display: none;
49 | }
50 | h1,h2,h3,h4,h5,h6 {
51 | 	transition:none;
52 | }
53 | .memtitle {
54 | 	background-image: none;
55 | 	background-color: #EEE;
56 | }
57 | table.memproto, .memproto {
58 | 	text-shadow: none;
59 | 	font-size: 110%;
60 | }
61 | 


--------------------------------------------------------------------------------
/docs/modules.js:
--------------------------------------------------------------------------------
 1 | var modules =
 2 | [
 3 |     [ "Basic Allocation", "group__malloc.html", "group__malloc" ],
 4 |     [ "Extended Functions", "group__extended.html", "group__extended" ],
 5 |     [ "Aligned Allocation", "group__aligned.html", "group__aligned" ],
 6 |     [ "Heap Allocation", "group__heap.html", "group__heap" ],
 7 |     [ "Zero initialized re-allocation", "group__zeroinit.html", "group__zeroinit" ],
 8 |     [ "Typed Macros", "group__typed.html", "group__typed" ],
 9 |     [ "Heap Introspection", "group__analysis.html", "group__analysis" ],
10 |     [ "Runtime Options", "group__options.html", "group__options" ],
11 |     [ "Posix", "group__posix.html", "group__posix" ],
12 |     [ "C++ wrappers", "group__cpp.html", "group__cpp" ]
13 | ];


--------------------------------------------------------------------------------
/docs/nav_f.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mimalloc/09a27098aa6e9286518bd9c74e6ffa7199c3f04e/docs/nav_f.png


--------------------------------------------------------------------------------
/docs/nav_g.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mimalloc/09a27098aa6e9286518bd9c74e6ffa7199c3f04e/docs/nav_g.png


--------------------------------------------------------------------------------
/docs/nav_h.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mimalloc/09a27098aa6e9286518bd9c74e6ffa7199c3f04e/docs/nav_h.png


--------------------------------------------------------------------------------
/docs/navtree.css:
--------------------------------------------------------------------------------
  1 | #nav-tree .children_ul {
  2 |   margin:0;
  3 |   padding:4px;
  4 | }
  5 | 
  6 | #nav-tree ul {
  7 |   list-style:none outside none;
  8 |   margin:0px;
  9 |   padding:0px;
 10 | }
 11 | 
 12 | #nav-tree li {
 13 |   white-space:nowrap;
 14 |   margin:0px;
 15 |   padding:0px;
 16 | }
 17 | 
 18 | #nav-tree .plus {
 19 |   margin:0px;
 20 | }
 21 | 
 22 | #nav-tree .selected {
 23 |   background-image: url('tab_a.png');
 24 |   background-repeat:repeat-x;
 25 |   color: white;
 26 |   text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
 27 | }
 28 | 
 29 | #nav-tree .selected .arrow {
 30 |   color: #5B6364;
 31 |   text-shadow: none;
 32 | }
 33 | 
 34 | #nav-tree img {
 35 |   margin:0px;
 36 |   padding:0px;
 37 |   border:0px;
 38 |   vertical-align: middle;
 39 | }
 40 | 
 41 | #nav-tree a {
 42 |   text-decoration:none;
 43 |   padding:0px;
 44 |   margin:0px;
 45 | }
 46 | 
 47 | #nav-tree .label {
 48 |   margin:0px;
 49 |   padding:0px;
 50 |   font: 12px 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif;
 51 | }
 52 | 
 53 | #nav-tree .label a {
 54 |   padding:2px;
 55 | }
 56 | 
 57 | #nav-tree .selected a {
 58 |   text-decoration:none;
 59 |   color:white;
 60 | }
 61 | 
 62 | #nav-tree .children_ul {
 63 |   margin:0px;
 64 |   padding:0px;
 65 | }
 66 | 
 67 | #nav-tree .item {
 68 |   margin:0px;
 69 |   padding:0px;
 70 | }
 71 | 
 72 | #nav-tree {
 73 |   padding: 0px 0px;
 74 |   font-size:14px;
 75 |   overflow:auto;
 76 | }
 77 | 
 78 | #doc-content {
 79 |   overflow:auto;
 80 |   display:block;
 81 |   padding:0px;
 82 |   margin:0px;
 83 |   -webkit-overflow-scrolling : touch; /* iOS 5+ */
 84 | }
 85 | 
 86 | #side-nav {
 87 |   padding:0 6px 0 0;
 88 |   margin: 0px;
 89 |   display:block;
 90 |   position: absolute;
 91 |   left: 0px;
 92 |   width: $width;
 93 |   overflow : hidden;
 94 | }
 95 | 
 96 | .ui-resizable .ui-resizable-handle {
 97 |   display:block;
 98 | }
 99 | 
100 | .ui-resizable-e {
101 |   background-image:url('splitbar.png');
102 |   background-size:100%;
103 |   background-repeat:repeat-y;
104 |   background-attachment: scroll;
105 |   cursor:ew-resize;
106 |   height:100%;
107 |   right:0;
108 |   top:0;
109 |   width:6px;
110 | }
111 | 
112 | .ui-resizable-handle {
113 |   display:none;
114 |   font-size:0.1px;
115 |   position:absolute;
116 |   z-index:1;
117 | }
118 | 
119 | #nav-tree-contents {
120 |   margin: 6px 0px 0px 0px;
121 | }
122 | 
123 | #nav-tree {
124 |   background-repeat:repeat-x;
125 |   background-color: #F2F3F3;
126 |   -webkit-overflow-scrolling : touch; /* iOS 5+ */
127 | }
128 | 
129 | #nav-sync {
130 |   position:absolute;
131 |   top:5px;
132 |   right:24px;
133 |   z-index:0;
134 | }
135 | 
136 | #nav-sync img {
137 |   opacity:0.3;
138 | }
139 | 
140 | #nav-sync img:hover {
141 |   opacity:0.9;
142 | }
143 | 
144 | @media print
145 | {
146 |   #nav-tree { display: none; }
147 |   div.ui-resizable-handle { display: none; position: relative; }
148 | }
149 | 
150 | 


--------------------------------------------------------------------------------
/docs/navtreedata.js:
--------------------------------------------------------------------------------
 1 | /*
 2 |  @licstart  The following is the entire license notice for the JavaScript code in this file.
 3 | 
 4 |  The MIT License (MIT)
 5 | 
 6 |  Copyright (C) 1997-2020 by Dimitri van Heesch
 7 | 
 8 |  Permission is hereby granted, free of charge, to any person obtaining a copy of this software
 9 |  and associated documentation files (the "Software"), to deal in the Software without restriction,
10 |  including without limitation the rights to use, copy, modify, merge, publish, distribute,
11 |  sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
12 |  furnished to do so, subject to the following conditions:
13 | 
14 |  The above copyright notice and this permission notice shall be included in all copies or
15 |  substantial portions of the Software.
16 | 
17 |  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
18 |  BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19 |  NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
20 |  DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 |  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22 | 
23 |  @licend  The above is the entire license notice for the JavaScript code in this file
24 | */
25 | var NAVTREE =
26 | [
27 |   [ "mi-malloc", "index.html", [
28 |     [ "Building", "build.html", null ],
29 |     [ "Using the library", "using.html", null ],
30 |     [ "Environment Options", "environment.html", null ],
31 |     [ "Overriding Malloc", "overrides.html", null ],
32 |     [ "Performance", "bench.html", null ],
33 |     [ "Topics", "topics.html", "topics" ],
34 |     [ "Data Structures", "annotated.html", [
35 |       [ "Data Structures", "annotated.html", "annotated_dup" ],
36 |       [ "Data Structure Index", "classes.html", null ],
37 |       [ "Data Fields", "functions.html", [
38 |         [ "All", "functions.html", null ],
39 |         [ "Variables", "functions_vars.html", null ]
40 |       ] ]
41 |     ] ]
42 |   ] ]
43 | ];
44 | 
45 | var NAVTREEINDEX =
46 | [
47 | "annotated.html"
48 | ];
49 | 
50 | var SYNCONMSG = 'click to disable panel synchronization';
51 | var SYNCOFFMSG = 'click to enable panel synchronization';


--------------------------------------------------------------------------------
/docs/open.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mimalloc/09a27098aa6e9286518bd9c74e6ffa7199c3f04e/docs/open.png


--------------------------------------------------------------------------------
/docs/search/all_0.html:
--------------------------------------------------------------------------------
 1 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 2 | <html xmlns="http://www.w3.org/1999/xhtml">
 3 | <head><title></title>
 4 | <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 5 | <meta name="generator" content="Doxygen 1.9.1"/>
 6 | <link rel="stylesheet" type="text/css" href="search.css"/>
 7 | <script type="text/javascript" src="all_0.js"></script>
 8 | <script type="text/javascript" src="search.js"></script>
 9 | </head>
10 | <body class="SRPage">
11 | <div id="SRIndex">
12 | <div class="SRStatus" id="Loading">Loading...</div>
13 | <div id="SRResults"></div>
14 | <script type="text/javascript">
15 | /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
16 | createResults();
17 | /* @license-end */
18 | </script>
19 | <div class="SRStatus" id="Searching">Searching...</div>
20 | <div class="SRStatus" id="NoMatches">No Matches</div>
21 | <script type="text/javascript">
22 | /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
23 | document.getElementById("Loading").style.display="none";
24 | document.getElementById("NoMatches").style.display="none";
25 | var searchResults = new SearchResults("searchResults");
26 | searchResults.Search();
27 | window.addEventListener("message", function(event) {
28 |   if (event.data == "take_focus") {
29 |     var elem = searchResults.NavNext(0);
30 |     if (elem) elem.focus();
31 |   }
32 | });
33 | /* @license-end */
34 | </script>
35 | </div>
36 | </body>
37 | </html>
38 | 


--------------------------------------------------------------------------------
/docs/search/all_0.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 |   ['_5fmi_5foption_5flast_0',['_mi_option_last',['../group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca5b4357b74be0d87568036c32eb1a2e4a',1,'mimalloc-doc.h']]]
4 | ];
5 | 


--------------------------------------------------------------------------------
/docs/search/all_1.html:
--------------------------------------------------------------------------------
 1 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 2 | <html xmlns="http://www.w3.org/1999/xhtml">
 3 | <head><title></title>
 4 | <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 5 | <meta name="generator" content="Doxygen 1.9.1"/>
 6 | <link rel="stylesheet" type="text/css" href="search.css"/>
 7 | <script type="text/javascript" src="all_1.js"></script>
 8 | <script type="text/javascript" src="search.js"></script>
 9 | </head>
10 | <body class="SRPage">
11 | <div id="SRIndex">
12 | <div class="SRStatus" id="Loading">Loading...</div>
13 | <div id="SRResults"></div>
14 | <script type="text/javascript">
15 | /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
16 | createResults();
17 | /* @license-end */
18 | </script>
19 | <div class="SRStatus" id="Searching">Searching...</div>
20 | <div class="SRStatus" id="NoMatches">No Matches</div>
21 | <script type="text/javascript">
22 | /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
23 | document.getElementById("Loading").style.display="none";
24 | document.getElementById("NoMatches").style.display="none";
25 | var searchResults = new SearchResults("searchResults");
26 | searchResults.Search();
27 | window.addEventListener("message", function(event) {
28 |   if (event.data == "take_focus") {
29 |     var elem = searchResults.NavNext(0);
30 |     if (elem) elem.focus();
31 |   }
32 | });
33 | /* @license-end */
34 | </script>
35 | </div>
36 | </body>
37 | </html>
38 | 


--------------------------------------------------------------------------------
/docs/search/all_1.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 |   ['aligned_20allocation_0',['Aligned Allocation',['../group__aligned.html',1,'']]],
4 |   ['allocation_1',['Allocation',['../group__aligned.html',1,'Aligned Allocation'],['../group__malloc.html',1,'Basic Allocation'],['../group__heap.html',1,'Heap Allocation']]],
5 |   ['allocation_2',['Zero initialized re-allocation',['../group__zeroinit.html',1,'']]]
6 | ];
7 | 


--------------------------------------------------------------------------------
/docs/search/all_10.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 |   ['zero_20initialized_20re_20allocation_0',['Zero initialized re-allocation',['../group__zeroinit.html',1,'']]]
4 | ];
5 | 


--------------------------------------------------------------------------------
/docs/search/all_2.html:
--------------------------------------------------------------------------------
 1 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 2 | <html xmlns="http://www.w3.org/1999/xhtml">
 3 | <head><title></title>
 4 | <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 5 | <meta name="generator" content="Doxygen 1.9.1"/>
 6 | <link rel="stylesheet" type="text/css" href="search.css"/>
 7 | <script type="text/javascript" src="all_2.js"></script>
 8 | <script type="text/javascript" src="search.js"></script>
 9 | </head>
10 | <body class="SRPage">
11 | <div id="SRIndex">
12 | <div class="SRStatus" id="Loading">Loading...</div>
13 | <div id="SRResults"></div>
14 | <script type="text/javascript">
15 | /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
16 | createResults();
17 | /* @license-end */
18 | </script>
19 | <div class="SRStatus" id="Searching">Searching...</div>
20 | <div class="SRStatus" id="NoMatches">No Matches</div>
21 | <script type="text/javascript">
22 | /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
23 | document.getElementById("Loading").style.display="none";
24 | document.getElementById("NoMatches").style.display="none";
25 | var searchResults = new SearchResults("searchResults");
26 | searchResults.Search();
27 | window.addEventListener("message", function(event) {
28 |   if (event.data == "take_focus") {
29 |     var elem = searchResults.NavNext(0);
30 |     if (elem) elem.focus();
31 |   }
32 | });
33 | /* @license-end */
34 | </script>
35 | </div>
36 | </body>
37 | </html>
38 | 


--------------------------------------------------------------------------------
/docs/search/all_2.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 |   ['basic_20allocation_0',['Basic Allocation',['../group__malloc.html',1,'']]],
4 |   ['block_5fsize_1',['block_size',['../group__analysis.html#a332a6c14d736a99699d5453a1cb04b41',1,'mi_heap_area_t']]],
5 |   ['blocks_2',['blocks',['../group__analysis.html#ae0085e6e1cf059a4eb7767e30e9991b8',1,'mi_heap_area_t']]],
6 |   ['building_3',['Building',['../build.html',1,'']]]
7 | ];
8 | 


--------------------------------------------------------------------------------
/docs/search/all_3.html:
--------------------------------------------------------------------------------
 1 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 2 | <html xmlns="http://www.w3.org/1999/xhtml">
 3 | <head><title></title>
 4 | <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 5 | <meta name="generator" content="Doxygen 1.9.1"/>
 6 | <link rel="stylesheet" type="text/css" href="search.css"/>
 7 | <script type="text/javascript" src="all_3.js"></script>
 8 | <script type="text/javascript" src="search.js"></script>
 9 | </head>
10 | <body class="SRPage">
11 | <div id="SRIndex">
12 | <div class="SRStatus" id="Loading">Loading...</div>
13 | <div id="SRResults"></div>
14 | <script type="text/javascript">
15 | /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
16 | createResults();
17 | /* @license-end */
18 | </script>
19 | <div class="SRStatus" id="Searching">Searching...</div>
20 | <div class="SRStatus" id="NoMatches">No Matches</div>
21 | <script type="text/javascript">
22 | /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
23 | document.getElementById("Loading").style.display="none";
24 | document.getElementById("NoMatches").style.display="none";
25 | var searchResults = new SearchResults("searchResults");
26 | searchResults.Search();
27 | window.addEventListener("message", function(event) {
28 |   if (event.data == "take_focus") {
29 |     var elem = searchResults.NavNext(0);
30 |     if (elem) elem.focus();
31 |   }
32 | });
33 | /* @license-end */
34 | </script>
35 | </div>
36 | </body>
37 | </html>
38 | 


--------------------------------------------------------------------------------
/docs/search/all_3.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 |   ['c_20wrappers_0',['C++ wrappers',['../group__cpp.html',1,'']]],
4 |   ['committed_1',['committed',['../group__analysis.html#ab47526df656d8837ec3e97f11b83f835',1,'mi_heap_area_t']]]
5 | ];
6 | 


--------------------------------------------------------------------------------
/docs/search/all_4.html:
--------------------------------------------------------------------------------
 1 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 2 | <html xmlns="http://www.w3.org/1999/xhtml">
 3 | <head><title></title>
 4 | <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 5 | <meta name="generator" content="Doxygen 1.9.1"/>
 6 | <link rel="stylesheet" type="text/css" href="search.css"/>
 7 | <script type="text/javascript" src="all_4.js"></script>
 8 | <script type="text/javascript" src="search.js"></script>
 9 | </head>
10 | <body class="SRPage">
11 | <div id="SRIndex">
12 | <div class="SRStatus" id="Loading">Loading...</div>
13 | <div id="SRResults"></div>
14 | <script type="text/javascript">
15 | /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
16 | createResults();
17 | /* @license-end */
18 | </script>
19 | <div class="SRStatus" id="Searching">Searching...</div>
20 | <div class="SRStatus" id="NoMatches">No Matches</div>
21 | <script type="text/javascript">
22 | /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
23 | document.getElementById("Loading").style.display="none";
24 | document.getElementById("NoMatches").style.display="none";
25 | var searchResults = new SearchResults("searchResults");
26 | searchResults.Search();
27 | window.addEventListener("message", function(event) {
28 |   if (event.data == "take_focus") {
29 |     var elem = searchResults.NavNext(0);
30 |     if (elem) elem.focus();
31 |   }
32 | });
33 | /* @license-end */
34 | </script>
35 | </div>
36 | </body>
37 | </html>
38 | 


--------------------------------------------------------------------------------
/docs/search/all_4.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 |   ['environment_20options_0',['Environment Options',['../environment.html',1,'']]],
4 |   ['extended_20functions_1',['Extended Functions',['../group__extended.html',1,'']]]
5 | ];
6 | 


--------------------------------------------------------------------------------
/docs/search/all_5.html:
--------------------------------------------------------------------------------
 1 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 2 | <html xmlns="http://www.w3.org/1999/xhtml">
 3 | <head><title></title>
 4 | <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 5 | <meta name="generator" content="Doxygen 1.9.1"/>
 6 | <link rel="stylesheet" type="text/css" href="search.css"/>
 7 | <script type="text/javascript" src="all_5.js"></script>
 8 | <script type="text/javascript" src="search.js"></script>
 9 | </head>
10 | <body class="SRPage">
11 | <div id="SRIndex">
12 | <div class="SRStatus" id="Loading">Loading...</div>
13 | <div id="SRResults"></div>
14 | <script type="text/javascript">
15 | /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
16 | createResults();
17 | /* @license-end */
18 | </script>
19 | <div class="SRStatus" id="Searching">Searching...</div>
20 | <div class="SRStatus" id="NoMatches">No Matches</div>
21 | <script type="text/javascript">
22 | /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
23 | document.getElementById("Loading").style.display="none";
24 | document.getElementById("NoMatches").style.display="none";
25 | var searchResults = new SearchResults("searchResults");
26 | searchResults.Search();
27 | window.addEventListener("message", function(event) {
28 |   if (event.data == "take_focus") {
29 |     var elem = searchResults.NavNext(0);
30 |     if (elem) elem.focus();
31 |   }
32 | });
33 | /* @license-end */
34 | </script>
35 | </div>
36 | </body>
37 | </html>
38 | 


--------------------------------------------------------------------------------
/docs/search/all_5.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 |   ['full_5fblock_5fsize_0',['full_block_size',['../group__analysis.html#ab53664e31d7fe2564f8d42041ef75cb3',1,'mi_heap_area_t']]],
4 |   ['functions_1',['Extended Functions',['../group__extended.html',1,'']]]
5 | ];
6 | 


--------------------------------------------------------------------------------
/docs/search/all_6.html:
--------------------------------------------------------------------------------
 1 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 2 | <html xmlns="http://www.w3.org/1999/xhtml">
 3 | <head><title></title>
 4 | <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 5 | <meta name="generator" content="Doxygen 1.9.1"/>
 6 | <link rel="stylesheet" type="text/css" href="search.css"/>
 7 | <script type="text/javascript" src="all_6.js"></script>
 8 | <script type="text/javascript" src="search.js"></script>
 9 | </head>
10 | <body class="SRPage">
11 | <div id="SRIndex">
12 | <div class="SRStatus" id="Loading">Loading...</div>
13 | <div id="SRResults"></div>
14 | <script type="text/javascript">
15 | /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
16 | createResults();
17 | /* @license-end */
18 | </script>
19 | <div class="SRStatus" id="Searching">Searching...</div>
20 | <div class="SRStatus" id="NoMatches">No Matches</div>
21 | <script type="text/javascript">
22 | /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
23 | document.getElementById("Loading").style.display="none";
24 | document.getElementById("NoMatches").style.display="none";
25 | var searchResults = new SearchResults("searchResults");
26 | searchResults.Search();
27 | window.addEventListener("message", function(event) {
28 |   if (event.data == "take_focus") {
29 |     var elem = searchResults.NavNext(0);
30 |     if (elem) elem.focus();
31 |   }
32 | });
33 | /* @license-end */
34 | </script>
35 | </div>
36 | </body>
37 | </html>
38 | 


--------------------------------------------------------------------------------
/docs/search/all_6.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 |   ['heap_20allocation_0',['Heap Allocation',['../group__heap.html',1,'']]],
4 |   ['heap_20introspection_1',['Heap Introspection',['../group__analysis.html',1,'']]],
5 |   ['heap_5ftag_2',['heap_tag',['../group__analysis.html#a2b7a0c92ece8daf46b558efc990ebdc1',1,'mi_heap_area_t']]]
6 | ];
7 | 


--------------------------------------------------------------------------------
/docs/search/all_7.html:
--------------------------------------------------------------------------------
 1 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 2 | <html xmlns="http://www.w3.org/1999/xhtml">
 3 | <head><title></title>
 4 | <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 5 | <meta name="generator" content="Doxygen 1.9.1"/>
 6 | <link rel="stylesheet" type="text/css" href="search.css"/>
 7 | <script type="text/javascript" src="all_7.js"></script>
 8 | <script type="text/javascript" src="search.js"></script>
 9 | </head>
10 | <body class="SRPage">
11 | <div id="SRIndex">
12 | <div class="SRStatus" id="Loading">Loading...</div>
13 | <div id="SRResults"></div>
14 | <script type="text/javascript">
15 | /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
16 | createResults();
17 | /* @license-end */
18 | </script>
19 | <div class="SRStatus" id="Searching">Searching...</div>
20 | <div class="SRStatus" id="NoMatches">No Matches</div>
21 | <script type="text/javascript">
22 | /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
23 | document.getElementById("Loading").style.display="none";
24 | document.getElementById("NoMatches").style.display="none";
25 | var searchResults = new SearchResults("searchResults");
26 | searchResults.Search();
27 | window.addEventListener("message", function(event) {
28 |   if (event.data == "take_focus") {
29 |     var elem = searchResults.NavNext(0);
30 |     if (elem) elem.focus();
31 |   }
32 | });
33 | /* @license-end */
34 | </script>
35 | </div>
36 | </body>
37 | </html>
38 | 


--------------------------------------------------------------------------------
/docs/search/all_7.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 |   ['initialized_20re_20allocation_0',['Zero initialized re-allocation',['../group__zeroinit.html',1,'']]],
4 |   ['introspection_1',['Heap Introspection',['../group__analysis.html',1,'']]]
5 | ];
6 | 


--------------------------------------------------------------------------------
/docs/search/all_8.html:
--------------------------------------------------------------------------------
 1 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 2 | <html xmlns="http://www.w3.org/1999/xhtml">
 3 | <head><title></title>
 4 | <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 5 | <meta name="generator" content="Doxygen 1.9.1"/>
 6 | <link rel="stylesheet" type="text/css" href="search.css"/>
 7 | <script type="text/javascript" src="all_8.js"></script>
 8 | <script type="text/javascript" src="search.js"></script>
 9 | </head>
10 | <body class="SRPage">
11 | <div id="SRIndex">
12 | <div class="SRStatus" id="Loading">Loading...</div>
13 | <div id="SRResults"></div>
14 | <script type="text/javascript">
15 | /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
16 | createResults();
17 | /* @license-end */
18 | </script>
19 | <div class="SRStatus" id="Searching">Searching...</div>
20 | <div class="SRStatus" id="NoMatches">No Matches</div>
21 | <script type="text/javascript">
22 | /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
23 | document.getElementById("Loading").style.display="none";
24 | document.getElementById("NoMatches").style.display="none";
25 | var searchResults = new SearchResults("searchResults");
26 | searchResults.Search();
27 | window.addEventListener("message", function(event) {
28 |   if (event.data == "take_focus") {
29 |     var elem = searchResults.NavNext(0);
30 |     if (elem) elem.focus();
31 |   }
32 | });
33 | /* @license-end */
34 | </script>
35 | </div>
36 | </body>
37 | </html>
38 | 


--------------------------------------------------------------------------------
/docs/search/all_8.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 |   ['library_0',['Using the library',['../using.html',1,'']]]
4 | ];
5 | 


--------------------------------------------------------------------------------
/docs/search/all_9.html:
--------------------------------------------------------------------------------
 1 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 2 | <html xmlns="http://www.w3.org/1999/xhtml">
 3 | <head><title></title>
 4 | <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 5 | <meta name="generator" content="Doxygen 1.9.1"/>
 6 | <link rel="stylesheet" type="text/css" href="search.css"/>
 7 | <script type="text/javascript" src="all_9.js"></script>
 8 | <script type="text/javascript" src="search.js"></script>
 9 | </head>
10 | <body class="SRPage">
11 | <div id="SRIndex">
12 | <div class="SRStatus" id="Loading">Loading...</div>
13 | <div id="SRResults"></div>
14 | <script type="text/javascript">
15 | /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
16 | createResults();
17 | /* @license-end */
18 | </script>
19 | <div class="SRStatus" id="Searching">Searching...</div>
20 | <div class="SRStatus" id="NoMatches">No Matches</div>
21 | <script type="text/javascript">
22 | /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
23 | document.getElementById("Loading").style.display="none";
24 | document.getElementById("NoMatches").style.display="none";
25 | var searchResults = new SearchResults("searchResults");
26 | searchResults.Search();
27 | window.addEventListener("message", function(event) {
28 |   if (event.data == "take_focus") {
29 |     var elem = searchResults.NavNext(0);
30 |     if (elem) elem.focus();
31 |   }
32 | });
33 | /* @license-end */
34 | </script>
35 | </div>
36 | </body>
37 | </html>
38 | 


--------------------------------------------------------------------------------
/docs/search/all_a.html:
--------------------------------------------------------------------------------
 1 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 2 | <html xmlns="http://www.w3.org/1999/xhtml">
 3 | <head><title></title>
 4 | <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 5 | <meta name="generator" content="Doxygen 1.9.1"/>
 6 | <link rel="stylesheet" type="text/css" href="search.css"/>
 7 | <script type="text/javascript" src="all_a.js"></script>
 8 | <script type="text/javascript" src="search.js"></script>
 9 | </head>
10 | <body class="SRPage">
11 | <div id="SRIndex">
12 | <div class="SRStatus" id="Loading">Loading...</div>
13 | <div id="SRResults"></div>
14 | <script type="text/javascript">
15 | /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
16 | createResults();
17 | /* @license-end */
18 | </script>
19 | <div class="SRStatus" id="Searching">Searching...</div>
20 | <div class="SRStatus" id="NoMatches">No Matches</div>
21 | <script type="text/javascript">
22 | /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
23 | document.getElementById("Loading").style.display="none";
24 | document.getElementById("NoMatches").style.display="none";
25 | var searchResults = new SearchResults("searchResults");
26 | searchResults.Search();
27 | window.addEventListener("message", function(event) {
28 |   if (event.data == "take_focus") {
29 |     var elem = searchResults.NavNext(0);
30 |     if (elem) elem.focus();
31 |   }
32 | });
33 | /* @license-end */
34 | </script>
35 | </div>
36 | </body>
37 | </html>
38 | 


--------------------------------------------------------------------------------
/docs/search/all_a.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 |   ['options_0',['Options',['../environment.html',1,'Environment Options'],['../group__options.html',1,'Runtime Options']]],
4 |   ['overriding_20malloc_1',['Overriding Malloc',['../overrides.html',1,'']]]
5 | ];
6 | 


--------------------------------------------------------------------------------
/docs/search/all_b.html:
--------------------------------------------------------------------------------
 1 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 2 | <html xmlns="http://www.w3.org/1999/xhtml">
 3 | <head><title></title>
 4 | <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 5 | <meta name="generator" content="Doxygen 1.9.1"/>
 6 | <link rel="stylesheet" type="text/css" href="search.css"/>
 7 | <script type="text/javascript" src="all_b.js"></script>
 8 | <script type="text/javascript" src="search.js"></script>
 9 | </head>
10 | <body class="SRPage">
11 | <div id="SRIndex">
12 | <div class="SRStatus" id="Loading">Loading...</div>
13 | <div id="SRResults"></div>
14 | <script type="text/javascript">
15 | /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
16 | createResults();
17 | /* @license-end */
18 | </script>
19 | <div class="SRStatus" id="Searching">Searching...</div>
20 | <div class="SRStatus" id="NoMatches">No Matches</div>
21 | <script type="text/javascript">
22 | /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
23 | document.getElementById("Loading").style.display="none";
24 | document.getElementById("NoMatches").style.display="none";
25 | var searchResults = new SearchResults("searchResults");
26 | searchResults.Search();
27 | window.addEventListener("message", function(event) {
28 |   if (event.data == "take_focus") {
29 |     var elem = searchResults.NavNext(0);
30 |     if (elem) elem.focus();
31 |   }
32 | });
33 | /* @license-end */
34 | </script>
35 | </div>
36 | </body>
37 | </html>
38 | 


--------------------------------------------------------------------------------
/docs/search/all_b.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 |   ['performance_0',['Performance',['../bench.html',1,'']]],
4 |   ['posix_1',['Posix',['../group__posix.html',1,'']]]
5 | ];
6 | 


--------------------------------------------------------------------------------
/docs/search/all_c.html:
--------------------------------------------------------------------------------
 1 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 2 | <html xmlns="http://www.w3.org/1999/xhtml">
 3 | <head><title></title>
 4 | <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 5 | <meta name="generator" content="Doxygen 1.9.1"/>
 6 | <link rel="stylesheet" type="text/css" href="search.css"/>
 7 | <script type="text/javascript" src="all_c.js"></script>
 8 | <script type="text/javascript" src="search.js"></script>
 9 | </head>
10 | <body class="SRPage">
11 | <div id="SRIndex">
12 | <div class="SRStatus" id="Loading">Loading...</div>
13 | <div id="SRResults"></div>
14 | <script type="text/javascript">
15 | /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
16 | createResults();
17 | /* @license-end */
18 | </script>
19 | <div class="SRStatus" id="Searching">Searching...</div>
20 | <div class="SRStatus" id="NoMatches">No Matches</div>
21 | <script type="text/javascript">
22 | /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
23 | document.getElementById("Loading").style.display="none";
24 | document.getElementById("NoMatches").style.display="none";
25 | var searchResults = new SearchResults("searchResults");
26 | searchResults.Search();
27 | window.addEventListener("message", function(event) {
28 |   if (event.data == "take_focus") {
29 |     var elem = searchResults.NavNext(0);
30 |     if (elem) elem.focus();
31 |   }
32 | });
33 | /* @license-end */
34 | </script>
35 | </div>
36 | </body>
37 | </html>
38 | 


--------------------------------------------------------------------------------
/docs/search/all_c.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 |   ['re_20allocation_0',['Zero initialized re-allocation',['../group__zeroinit.html',1,'']]],
4 |   ['reserved_1',['reserved',['../group__analysis.html#ae848a3e6840414891035423948ca0383',1,'mi_heap_area_t']]],
5 |   ['runtime_20options_2',['Runtime Options',['../group__options.html',1,'']]]
6 | ];
7 | 


--------------------------------------------------------------------------------
/docs/search/all_d.html:
--------------------------------------------------------------------------------
 1 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 2 | <html><head><title></title>
 3 | <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 4 | <meta name="generator" content="Doxygen 1.8.15"/>
 5 | <link rel="stylesheet" type="text/css" href="search.css"/>
 6 | <script type="text/javascript" src="all_d.js"></script>
 7 | <script type="text/javascript" src="search.js"></script>
 8 | </head>
 9 | <body class="SRPage">
10 | <div id="SRIndex">
11 | <div class="SRStatus" id="Loading">Loading...</div>
12 | <div id="SRResults"></div>
13 | <script type="text/javascript"><!--
14 | /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
15 | createResults();
16 | /* @license-end */
17 | --></script>
18 | <div class="SRStatus" id="Searching">Searching...</div>
19 | <div class="SRStatus" id="NoMatches">No Matches</div>
20 | <script type="text/javascript"><!--
21 | /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
22 | document.getElementById("Loading").style.display="none";
23 | document.getElementById("NoMatches").style.display="none";
24 | var searchResults = new SearchResults("searchResults");
25 | searchResults.Search();
26 | /* @license-end */
27 | --></script>
28 | </div>
29 | </body>
30 | </html>
31 | 


--------------------------------------------------------------------------------
/docs/search/all_d.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 |   ['the_20library_0',['Using the library',['../using.html',1,'']]],
4 |   ['typed_20macros_1',['Typed Macros',['../group__typed.html',1,'']]]
5 | ];
6 | 


--------------------------------------------------------------------------------
/docs/search/all_e.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 |   ['used_0',['used',['../group__analysis.html#ab820302c5cd0df133eb8e51650a008b4',1,'mi_heap_area_t']]],
4 |   ['using_20the_20library_1',['Using the library',['../using.html',1,'']]]
5 | ];
6 | 


--------------------------------------------------------------------------------
/docs/search/all_f.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 |   ['wrappers_0',['C++ wrappers',['../group__cpp.html',1,'']]]
4 | ];
5 | 


--------------------------------------------------------------------------------
/docs/search/classes_0.html:
--------------------------------------------------------------------------------
 1 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 2 | <html xmlns="http://www.w3.org/1999/xhtml">
 3 | <head><title></title>
 4 | <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 5 | <meta name="generator" content="Doxygen 1.9.1"/>
 6 | <link rel="stylesheet" type="text/css" href="search.css"/>
 7 | <script type="text/javascript" src="classes_0.js"></script>
 8 | <script type="text/javascript" src="search.js"></script>
 9 | </head>
10 | <body class="SRPage">
11 | <div id="SRIndex">
12 | <div class="SRStatus" id="Loading">Loading...</div>
13 | <div id="SRResults"></div>
14 | <script type="text/javascript">
15 | /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
16 | createResults();
17 | /* @license-end */
18 | </script>
19 | <div class="SRStatus" id="Searching">Searching...</div>
20 | <div class="SRStatus" id="NoMatches">No Matches</div>
21 | <script type="text/javascript">
22 | /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
23 | document.getElementById("Loading").style.display="none";
24 | document.getElementById("NoMatches").style.display="none";
25 | var searchResults = new SearchResults("searchResults");
26 | searchResults.Search();
27 | window.addEventListener("message", function(event) {
28 |   if (event.data == "take_focus") {
29 |     var elem = searchResults.NavNext(0);
30 |     if (elem) elem.focus();
31 |   }
32 | });
33 | /* @license-end */
34 | </script>
35 | </div>
36 | </body>
37 | </html>
38 | 


--------------------------------------------------------------------------------
/docs/search/classes_0.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 |   ['mi_5fheap_5farea_5ft_0',['mi_heap_area_t',['../group__analysis.html#structmi__heap__area__t',1,'']]],
4 |   ['mi_5fstl_5fallocator_1',['mi_stl_allocator',['../group__cpp.html#structmi__stl__allocator',1,'']]]
5 | ];
6 | 


--------------------------------------------------------------------------------
/docs/search/close.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mimalloc/09a27098aa6e9286518bd9c74e6ffa7199c3f04e/docs/search/close.png


--------------------------------------------------------------------------------
/docs/search/close.svg:
--------------------------------------------------------------------------------
 1 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 2 | <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
 3 |  "https://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
 4 | <svg
 5 |    xmlns="http://www.w3.org/2000/svg"
 6 |    xmlns:xlink="http://www.w3.org/1999/xlink"
 7 |    viewBox="0 0 11 11"
 8 |    height="11"
 9 |    width="11"
10 |    id="svg2"
11 |    version="1.1">
12 |   <defs
13 |      id="defs6" />
14 |   <path
15 |      id="path12"
16 |      d="M 5.5 0.5 A 5 5 0 0 0 0.5 5.5 A 5 5 0 0 0 5.5 10.5 A 5 5 0 0 0 10.5 5.5 A 5 5 0 0 0 5.5 0.5 z M 3.5820312 3 A 0.58291923 0.58291923 0 0 1 4 3.1757812 L 5.5 4.6757812 L 7 3.1757812 A 0.58291923 0.58291923 0 0 1 7.4003906 3 A 0.58291923 0.58291923 0 0 1 7.8242188 4 L 6.3242188 5.5 L 7.8242188 7 A 0.58291923 0.58291923 0 1 1 7 7.8242188 L 5.5 6.3242188 L 4 7.8242188 A 0.58291923 0.58291923 0 1 1 3.1757812 7 L 4.6757812 5.5 L 3.1757812 4 A 0.58291923 0.58291923 0 0 1 3.5820312 3 z "
17 |      style="stroke-width:1.09870648;fill:#bababa;fill-opacity:1" />
18 | </svg>
19 | 


--------------------------------------------------------------------------------
/docs/search/enums_0.html:
--------------------------------------------------------------------------------
 1 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 2 | <html xmlns="http://www.w3.org/1999/xhtml">
 3 | <head><title></title>
 4 | <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 5 | <meta name="generator" content="Doxygen 1.9.1"/>
 6 | <link rel="stylesheet" type="text/css" href="search.css"/>
 7 | <script type="text/javascript" src="enums_0.js"></script>
 8 | <script type="text/javascript" src="search.js"></script>
 9 | </head>
10 | <body class="SRPage">
11 | <div id="SRIndex">
12 | <div class="SRStatus" id="Loading">Loading...</div>
13 | <div id="SRResults"></div>
14 | <script type="text/javascript">
15 | /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
16 | createResults();
17 | /* @license-end */
18 | </script>
19 | <div class="SRStatus" id="Searching">Searching...</div>
20 | <div class="SRStatus" id="NoMatches">No Matches</div>
21 | <script type="text/javascript">
22 | /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
23 | document.getElementById("Loading").style.display="none";
24 | document.getElementById("NoMatches").style.display="none";
25 | var searchResults = new SearchResults("searchResults");
26 | searchResults.Search();
27 | window.addEventListener("message", function(event) {
28 |   if (event.data == "take_focus") {
29 |     var elem = searchResults.NavNext(0);
30 |     if (elem) elem.focus();
31 |   }
32 | });
33 | /* @license-end */
34 | </script>
35 | </div>
36 | </body>
37 | </html>
38 | 


--------------------------------------------------------------------------------
/docs/search/enums_0.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 |   ['mi_5foption_5ft_0',['mi_option_t',['../group__options.html#gafebf7ed116adb38ae5218bc3ce06884c',1,'mimalloc-doc.h']]]
4 | ];
5 | 


--------------------------------------------------------------------------------
/docs/search/enumvalues_0.html:
--------------------------------------------------------------------------------
 1 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 2 | <html xmlns="http://www.w3.org/1999/xhtml">
 3 | <head><title></title>
 4 | <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 5 | <meta name="generator" content="Doxygen 1.9.1"/>
 6 | <link rel="stylesheet" type="text/css" href="search.css"/>
 7 | <script type="text/javascript" src="enumvalues_0.js"></script>
 8 | <script type="text/javascript" src="search.js"></script>
 9 | </head>
10 | <body class="SRPage">
11 | <div id="SRIndex">
12 | <div class="SRStatus" id="Loading">Loading...</div>
13 | <div id="SRResults"></div>
14 | <script type="text/javascript">
15 | /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
16 | createResults();
17 | /* @license-end */
18 | </script>
19 | <div class="SRStatus" id="Searching">Searching...</div>
20 | <div class="SRStatus" id="NoMatches">No Matches</div>
21 | <script type="text/javascript">
22 | /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
23 | document.getElementById("Loading").style.display="none";
24 | document.getElementById("NoMatches").style.display="none";
25 | var searchResults = new SearchResults("searchResults");
26 | searchResults.Search();
27 | window.addEventListener("message", function(event) {
28 |   if (event.data == "take_focus") {
29 |     var elem = searchResults.NavNext(0);
30 |     if (elem) elem.focus();
31 |   }
32 | });
33 | /* @license-end */
34 | </script>
35 | </div>
36 | </body>
37 | </html>
38 | 


--------------------------------------------------------------------------------
/docs/search/enumvalues_0.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 |   ['_5fmi_5foption_5flast_0',['_mi_option_last',['../group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca5b4357b74be0d87568036c32eb1a2e4a',1,'mimalloc-doc.h']]]
4 | ];
5 | 


--------------------------------------------------------------------------------
/docs/search/enumvalues_1.html:
--------------------------------------------------------------------------------
 1 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 2 | <html xmlns="http://www.w3.org/1999/xhtml">
 3 | <head><title></title>
 4 | <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 5 | <meta name="generator" content="Doxygen 1.9.1"/>
 6 | <link rel="stylesheet" type="text/css" href="search.css"/>
 7 | <script type="text/javascript" src="enumvalues_1.js"></script>
 8 | <script type="text/javascript" src="search.js"></script>
 9 | </head>
10 | <body class="SRPage">
11 | <div id="SRIndex">
12 | <div class="SRStatus" id="Loading">Loading...</div>
13 | <div id="SRResults"></div>
14 | <script type="text/javascript">
15 | /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
16 | createResults();
17 | /* @license-end */
18 | </script>
19 | <div class="SRStatus" id="Searching">Searching...</div>
20 | <div class="SRStatus" id="NoMatches">No Matches</div>
21 | <script type="text/javascript">
22 | /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
23 | document.getElementById("Loading").style.display="none";
24 | document.getElementById("NoMatches").style.display="none";
25 | var searchResults = new SearchResults("searchResults");
26 | searchResults.Search();
27 | window.addEventListener("message", function(event) {
28 |   if (event.data == "take_focus") {
29 |     var elem = searchResults.NavNext(0);
30 |     if (elem) elem.focus();
31 |   }
32 | });
33 | /* @license-end */
34 | </script>
35 | </div>
36 | </body>
37 | </html>
38 | 


--------------------------------------------------------------------------------
/docs/search/enumvalues_1.js:
--------------------------------------------------------------------------------
 1 | var searchData=
 2 | [
 3 |   ['mi_5foption_5fabandoned_5fpage_5fpurge_0',['mi_option_abandoned_page_purge',['../group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca11e62ed69200a489a5be955582078c0c',1,'mimalloc-doc.h']]],
 4 |   ['mi_5foption_5fabandoned_5freclaim_5fon_5ffree_1',['mi_option_abandoned_reclaim_on_free',['../group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca009e4b5684922ce664d73d2a8e1698d9',1,'mimalloc-doc.h']]],
 5 |   ['mi_5foption_5fallow_5flarge_5fos_5fpages_2',['mi_option_allow_large_os_pages',['../group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca7cc4804ced69004fa42a9a136a9ba556',1,'mimalloc-doc.h']]],
 6 |   ['mi_5foption_5farena_5feager_5fcommit_3',['mi_option_arena_eager_commit',['../group__options.html#ggafebf7ed116adb38ae5218bc3ce06884cafd0c5ddbc4b59fd8b5216871728167a5',1,'mimalloc-doc.h']]],
 7 |   ['mi_5foption_5farena_5fpurge_5fmult_4',['mi_option_arena_purge_mult',['../group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca8236501f1ab45d26e6fd885d191a2b5e',1,'mimalloc-doc.h']]],
 8 |   ['mi_5foption_5farena_5freserve_5',['mi_option_arena_reserve',['../group__options.html#ggafebf7ed116adb38ae5218bc3ce06884cab1c88e23ae290bbeec824038a97959de',1,'mimalloc-doc.h']]],
 9 |   ['mi_5foption_5fdestroy_5fon_5fexit_6',['mi_option_destroy_on_exit',['../group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca6364331e305e7d3c0218b058ff3afc88',1,'mimalloc-doc.h']]],
10 |   ['mi_5foption_5fdisallow_5farena_5falloc_7',['mi_option_disallow_arena_alloc',['../group__options.html#ggafebf7ed116adb38ae5218bc3ce06884caeae1696100e4057ffc4182730cc04e40',1,'mimalloc-doc.h']]],
11 |   ['mi_5foption_5fdisallow_5fos_5falloc_8',['mi_option_disallow_os_alloc',['../group__options.html#ggafebf7ed116adb38ae5218bc3ce06884cadcfb5a09580361b1be65901d2d812de6',1,'mimalloc-doc.h']]],
12 |   ['mi_5foption_5feager_5fcommit_9',['mi_option_eager_commit',['../group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca1e8de72c93da7ff22d91e1e27b52ac2b',1,'mimalloc-doc.h']]],
13 |   ['mi_5foption_5feager_5fcommit_5fdelay_10',['mi_option_eager_commit_delay',['../group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca17a190c25be381142d87e0468c4c068c',1,'mimalloc-doc.h']]],
14 |   ['mi_5foption_5flimit_5fos_5falloc_11',['mi_option_limit_os_alloc',['../group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca9fa61bd9668479f8452d2195759444cc',1,'mimalloc-doc.h']]],
15 |   ['mi_5foption_5fmax_5ferrors_12',['mi_option_max_errors',['../group__options.html#ggafebf7ed116adb38ae5218bc3ce06884caec6ecbe29d46a48205ed8823a8a52a6a',1,'mimalloc-doc.h']]],
16 |   ['mi_5foption_5fmax_5fsegment_5freclaim_13',['mi_option_max_segment_reclaim',['../group__options.html#ggafebf7ed116adb38ae5218bc3ce06884caa9ad9005d7017c8c30ad2d6ba31db909',1,'mimalloc-doc.h']]],
17 |   ['mi_5foption_5fmax_5fwarnings_14',['mi_option_max_warnings',['../group__options.html#ggafebf7ed116adb38ae5218bc3ce06884caf9595921087e942602ee079158762665',1,'mimalloc-doc.h']]],
18 |   ['mi_5foption_5fos_5ftag_15',['mi_option_os_tag',['../group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca4b74ae2a69e445de6c2361b73c1d14bf',1,'mimalloc-doc.h']]],
19 |   ['mi_5foption_5fpurge_5fdecommits_16',['mi_option_purge_decommits',['../group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca9d15c5e3d2115eef681c17e4dd5ab9a4',1,'mimalloc-doc.h']]],
20 |   ['mi_5foption_5fpurge_5fdelay_17',['mi_option_purge_delay',['../group__options.html#ggafebf7ed116adb38ae5218bc3ce06884cadd351e615acd8563529c20a347be7290',1,'mimalloc-doc.h']]],
21 |   ['mi_5foption_5fpurge_5fextend_5fdelay_18',['mi_option_purge_extend_delay',['../group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca02005f164bdf03f5f00c5be726adf487',1,'mimalloc-doc.h']]],
22 |   ['mi_5foption_5freserve_5fhuge_5fos_5fpages_19',['mi_option_reserve_huge_os_pages',['../group__options.html#ggafebf7ed116adb38ae5218bc3ce06884caca7ed041be3b0b9d0b82432c7bf41af2',1,'mimalloc-doc.h']]],
23 |   ['mi_5foption_5freserve_5fhuge_5fos_5fpages_5fat_20',['mi_option_reserve_huge_os_pages_at',['../group__options.html#ggafebf7ed116adb38ae5218bc3ce06884caa13e7926d4339d2aa6fbf61d4473fd5c',1,'mimalloc-doc.h']]],
24 |   ['mi_5foption_5freserve_5fos_5fmemory_21',['mi_option_reserve_os_memory',['../group__options.html#ggafebf7ed116adb38ae5218bc3ce06884cafbf4999c828cf79a0fb2de65d23f7333',1,'mimalloc-doc.h']]],
25 |   ['mi_5foption_5fretry_5fon_5foom_22',['mi_option_retry_on_oom',['../group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca8f51df355bf6651db899e6085b54865e',1,'mimalloc-doc.h']]],
26 |   ['mi_5foption_5fshow_5ferrors_23',['mi_option_show_errors',['../group__options.html#ggafebf7ed116adb38ae5218bc3ce06884cafbf4822e5c00732c5984b32a032837f0',1,'mimalloc-doc.h']]],
27 |   ['mi_5foption_5fshow_5fstats_24',['mi_option_show_stats',['../group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca0957ef73b2550764b4840edf48422fda',1,'mimalloc-doc.h']]],
28 |   ['mi_5foption_5fuse_5fnuma_5fnodes_25',['mi_option_use_numa_nodes',['../group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca0ac33a18f6b659fcfaf44efb0bab1b74',1,'mimalloc-doc.h']]],
29 |   ['mi_5foption_5fverbose_26',['mi_option_verbose',['../group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca7c8b7bf5281c581bad64f5daa6442777',1,'mimalloc-doc.h']]],
30 |   ['mi_5foption_5fvisit_5fabandoned_27',['mi_option_visit_abandoned',['../group__options.html#ggafebf7ed116adb38ae5218bc3ce06884ca38c67733a3956a1f4eeaca89fab9e78e',1,'mimalloc-doc.h']]]
31 | ];
32 | 


--------------------------------------------------------------------------------
/docs/search/functions_0.html:
--------------------------------------------------------------------------------
 1 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 2 | <html xmlns="http://www.w3.org/1999/xhtml">
 3 | <head><title></title>
 4 | <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 5 | <meta name="generator" content="Doxygen 1.9.1"/>
 6 | <link rel="stylesheet" type="text/css" href="search.css"/>
 7 | <script type="text/javascript" src="functions_0.js"></script>
 8 | <script type="text/javascript" src="search.js"></script>
 9 | </head>
10 | <body class="SRPage">
11 | <div id="SRIndex">
12 | <div class="SRStatus" id="Loading">Loading...</div>
13 | <div id="SRResults"></div>
14 | <script type="text/javascript">
15 | /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
16 | createResults();
17 | /* @license-end */
18 | </script>
19 | <div class="SRStatus" id="Searching">Searching...</div>
20 | <div class="SRStatus" id="NoMatches">No Matches</div>
21 | <script type="text/javascript">
22 | /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
23 | document.getElementById("Loading").style.display="none";
24 | document.getElementById("NoMatches").style.display="none";
25 | var searchResults = new SearchResults("searchResults");
26 | searchResults.Search();
27 | window.addEventListener("message", function(event) {
28 |   if (event.data == "take_focus") {
29 |     var elem = searchResults.NavNext(0);
30 |     if (elem) elem.focus();
31 |   }
32 | });
33 | /* @license-end */
34 | </script>
35 | </div>
36 | </body>
37 | </html>
38 | 


--------------------------------------------------------------------------------
/docs/search/functions_1.html:
--------------------------------------------------------------------------------
 1 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 2 | <html><head><title></title>
 3 | <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 4 | <meta name="generator" content="Doxygen 1.8.15"/>
 5 | <link rel="stylesheet" type="text/css" href="search.css"/>
 6 | <script type="text/javascript" src="functions_1.js"></script>
 7 | <script type="text/javascript" src="search.js"></script>
 8 | </head>
 9 | <body class="SRPage">
10 | <div id="SRIndex">
11 | <div class="SRStatus" id="Loading">Loading...</div>
12 | <div id="SRResults"></div>
13 | <script type="text/javascript"><!--
14 | /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
15 | createResults();
16 | /* @license-end */
17 | --></script>
18 | <div class="SRStatus" id="Searching">Searching...</div>
19 | <div class="SRStatus" id="NoMatches">No Matches</div>
20 | <script type="text/javascript"><!--
21 | /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
22 | document.getElementById("Loading").style.display="none";
23 | document.getElementById("NoMatches").style.display="none";
24 | var searchResults = new SearchResults("searchResults");
25 | searchResults.Search();
26 | /* @license-end */
27 | --></script>
28 | </div>
29 | </body>
30 | </html>
31 | 


--------------------------------------------------------------------------------
/docs/search/functions_1.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 |   ['void',['void',['../group__extended.html#gadc49452cc1634aa03ac83ffe9b97a19c',1,'mimalloc-doc.h']]]
4 | ];
5 | 


--------------------------------------------------------------------------------
/docs/search/groups_0.html:
--------------------------------------------------------------------------------
 1 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 2 | <html xmlns="http://www.w3.org/1999/xhtml">
 3 | <head><title></title>
 4 | <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 5 | <meta name="generator" content="Doxygen 1.9.1"/>
 6 | <link rel="stylesheet" type="text/css" href="search.css"/>
 7 | <script type="text/javascript" src="groups_0.js"></script>
 8 | <script type="text/javascript" src="search.js"></script>
 9 | </head>
10 | <body class="SRPage">
11 | <div id="SRIndex">
12 | <div class="SRStatus" id="Loading">Loading...</div>
13 | <div id="SRResults"></div>
14 | <script type="text/javascript">
15 | /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
16 | createResults();
17 | /* @license-end */
18 | </script>
19 | <div class="SRStatus" id="Searching">Searching...</div>
20 | <div class="SRStatus" id="NoMatches">No Matches</div>
21 | <script type="text/javascript">
22 | /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
23 | document.getElementById("Loading").style.display="none";
24 | document.getElementById("NoMatches").style.display="none";
25 | var searchResults = new SearchResults("searchResults");
26 | searchResults.Search();
27 | window.addEventListener("message", function(event) {
28 |   if (event.data == "take_focus") {
29 |     var elem = searchResults.NavNext(0);
30 |     if (elem) elem.focus();
31 |   }
32 | });
33 | /* @license-end */
34 | </script>
35 | </div>
36 | </body>
37 | </html>
38 | 


--------------------------------------------------------------------------------
/docs/search/groups_0.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 |   ['aligned_20allocation_0',['Aligned Allocation',['../group__aligned.html',1,'']]],
4 |   ['allocation_1',['Allocation',['../group__aligned.html',1,'Aligned Allocation'],['../group__malloc.html',1,'Basic Allocation'],['../group__heap.html',1,'Heap Allocation']]],
5 |   ['allocation_2',['Zero initialized re-allocation',['../group__zeroinit.html',1,'']]]
6 | ];
7 | 


--------------------------------------------------------------------------------
/docs/search/groups_1.html:
--------------------------------------------------------------------------------
 1 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 2 | <html xmlns="http://www.w3.org/1999/xhtml">
 3 | <head><title></title>
 4 | <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 5 | <meta name="generator" content="Doxygen 1.9.1"/>
 6 | <link rel="stylesheet" type="text/css" href="search.css"/>
 7 | <script type="text/javascript" src="groups_1.js"></script>
 8 | <script type="text/javascript" src="search.js"></script>
 9 | </head>
10 | <body class="SRPage">
11 | <div id="SRIndex">
12 | <div class="SRStatus" id="Loading">Loading...</div>
13 | <div id="SRResults"></div>
14 | <script type="text/javascript">
15 | /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
16 | createResults();
17 | /* @license-end */
18 | </script>
19 | <div class="SRStatus" id="Searching">Searching...</div>
20 | <div class="SRStatus" id="NoMatches">No Matches</div>
21 | <script type="text/javascript">
22 | /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
23 | document.getElementById("Loading").style.display="none";
24 | document.getElementById("NoMatches").style.display="none";
25 | var searchResults = new SearchResults("searchResults");
26 | searchResults.Search();
27 | window.addEventListener("message", function(event) {
28 |   if (event.data == "take_focus") {
29 |     var elem = searchResults.NavNext(0);
30 |     if (elem) elem.focus();
31 |   }
32 | });
33 | /* @license-end */
34 | </script>
35 | </div>
36 | </body>
37 | </html>
38 | 


--------------------------------------------------------------------------------
/docs/search/groups_1.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 |   ['basic_20allocation_0',['Basic Allocation',['../group__malloc.html',1,'']]]
4 | ];
5 | 


--------------------------------------------------------------------------------
/docs/search/groups_2.html:
--------------------------------------------------------------------------------
 1 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 2 | <html xmlns="http://www.w3.org/1999/xhtml">
 3 | <head><title></title>
 4 | <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 5 | <meta name="generator" content="Doxygen 1.9.1"/>
 6 | <link rel="stylesheet" type="text/css" href="search.css"/>
 7 | <script type="text/javascript" src="groups_2.js"></script>
 8 | <script type="text/javascript" src="search.js"></script>
 9 | </head>
10 | <body class="SRPage">
11 | <div id="SRIndex">
12 | <div class="SRStatus" id="Loading">Loading...</div>
13 | <div id="SRResults"></div>
14 | <script type="text/javascript">
15 | /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
16 | createResults();
17 | /* @license-end */
18 | </script>
19 | <div class="SRStatus" id="Searching">Searching...</div>
20 | <div class="SRStatus" id="NoMatches">No Matches</div>
21 | <script type="text/javascript">
22 | /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
23 | document.getElementById("Loading").style.display="none";
24 | document.getElementById("NoMatches").style.display="none";
25 | var searchResults = new SearchResults("searchResults");
26 | searchResults.Search();
27 | window.addEventListener("message", function(event) {
28 |   if (event.data == "take_focus") {
29 |     var elem = searchResults.NavNext(0);
30 |     if (elem) elem.focus();
31 |   }
32 | });
33 | /* @license-end */
34 | </script>
35 | </div>
36 | </body>
37 | </html>
38 | 


--------------------------------------------------------------------------------
/docs/search/groups_2.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 |   ['c_20wrappers_0',['C++ wrappers',['../group__cpp.html',1,'']]]
4 | ];
5 | 


--------------------------------------------------------------------------------
/docs/search/groups_3.html:
--------------------------------------------------------------------------------
 1 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 2 | <html xmlns="http://www.w3.org/1999/xhtml">
 3 | <head><title></title>
 4 | <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 5 | <meta name="generator" content="Doxygen 1.9.1"/>
 6 | <link rel="stylesheet" type="text/css" href="search.css"/>
 7 | <script type="text/javascript" src="groups_3.js"></script>
 8 | <script type="text/javascript" src="search.js"></script>
 9 | </head>
10 | <body class="SRPage">
11 | <div id="SRIndex">
12 | <div class="SRStatus" id="Loading">Loading...</div>
13 | <div id="SRResults"></div>
14 | <script type="text/javascript">
15 | /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
16 | createResults();
17 | /* @license-end */
18 | </script>
19 | <div class="SRStatus" id="Searching">Searching...</div>
20 | <div class="SRStatus" id="NoMatches">No Matches</div>
21 | <script type="text/javascript">
22 | /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
23 | document.getElementById("Loading").style.display="none";
24 | document.getElementById("NoMatches").style.display="none";
25 | var searchResults = new SearchResults("searchResults");
26 | searchResults.Search();
27 | window.addEventListener("message", function(event) {
28 |   if (event.data == "take_focus") {
29 |     var elem = searchResults.NavNext(0);
30 |     if (elem) elem.focus();
31 |   }
32 | });
33 | /* @license-end */
34 | </script>
35 | </div>
36 | </body>
37 | </html>
38 | 


--------------------------------------------------------------------------------
/docs/search/groups_3.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 |   ['extended_20functions_0',['Extended Functions',['../group__extended.html',1,'']]]
4 | ];
5 | 


--------------------------------------------------------------------------------
/docs/search/groups_4.html:
--------------------------------------------------------------------------------
 1 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 2 | <html xmlns="http://www.w3.org/1999/xhtml">
 3 | <head><title></title>
 4 | <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 5 | <meta name="generator" content="Doxygen 1.9.1"/>
 6 | <link rel="stylesheet" type="text/css" href="search.css"/>
 7 | <script type="text/javascript" src="groups_4.js"></script>
 8 | <script type="text/javascript" src="search.js"></script>
 9 | </head>
10 | <body class="SRPage">
11 | <div id="SRIndex">
12 | <div class="SRStatus" id="Loading">Loading...</div>
13 | <div id="SRResults"></div>
14 | <script type="text/javascript">
15 | /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
16 | createResults();
17 | /* @license-end */
18 | </script>
19 | <div class="SRStatus" id="Searching">Searching...</div>
20 | <div class="SRStatus" id="NoMatches">No Matches</div>
21 | <script type="text/javascript">
22 | /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
23 | document.getElementById("Loading").style.display="none";
24 | document.getElementById("NoMatches").style.display="none";
25 | var searchResults = new SearchResults("searchResults");
26 | searchResults.Search();
27 | window.addEventListener("message", function(event) {
28 |   if (event.data == "take_focus") {
29 |     var elem = searchResults.NavNext(0);
30 |     if (elem) elem.focus();
31 |   }
32 | });
33 | /* @license-end */
34 | </script>
35 | </div>
36 | </body>
37 | </html>
38 | 


--------------------------------------------------------------------------------
/docs/search/groups_4.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 |   ['functions_0',['Extended Functions',['../group__extended.html',1,'']]]
4 | ];
5 | 


--------------------------------------------------------------------------------
/docs/search/groups_5.html:
--------------------------------------------------------------------------------
 1 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 2 | <html xmlns="http://www.w3.org/1999/xhtml">
 3 | <head><title></title>
 4 | <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 5 | <meta name="generator" content="Doxygen 1.9.1"/>
 6 | <link rel="stylesheet" type="text/css" href="search.css"/>
 7 | <script type="text/javascript" src="groups_5.js"></script>
 8 | <script type="text/javascript" src="search.js"></script>
 9 | </head>
10 | <body class="SRPage">
11 | <div id="SRIndex">
12 | <div class="SRStatus" id="Loading">Loading...</div>
13 | <div id="SRResults"></div>
14 | <script type="text/javascript">
15 | /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
16 | createResults();
17 | /* @license-end */
18 | </script>
19 | <div class="SRStatus" id="Searching">Searching...</div>
20 | <div class="SRStatus" id="NoMatches">No Matches</div>
21 | <script type="text/javascript">
22 | /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
23 | document.getElementById("Loading").style.display="none";
24 | document.getElementById("NoMatches").style.display="none";
25 | var searchResults = new SearchResults("searchResults");
26 | searchResults.Search();
27 | window.addEventListener("message", function(event) {
28 |   if (event.data == "take_focus") {
29 |     var elem = searchResults.NavNext(0);
30 |     if (elem) elem.focus();
31 |   }
32 | });
33 | /* @license-end */
34 | </script>
35 | </div>
36 | </body>
37 | </html>
38 | 


--------------------------------------------------------------------------------
/docs/search/groups_5.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 |   ['heap_20allocation_0',['Heap Allocation',['../group__heap.html',1,'']]],
4 |   ['heap_20introspection_1',['Heap Introspection',['../group__analysis.html',1,'']]]
5 | ];
6 | 


--------------------------------------------------------------------------------
/docs/search/groups_6.html:
--------------------------------------------------------------------------------
 1 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 2 | <html xmlns="http://www.w3.org/1999/xhtml">
 3 | <head><title></title>
 4 | <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 5 | <meta name="generator" content="Doxygen 1.9.1"/>
 6 | <link rel="stylesheet" type="text/css" href="search.css"/>
 7 | <script type="text/javascript" src="groups_6.js"></script>
 8 | <script type="text/javascript" src="search.js"></script>
 9 | </head>
10 | <body class="SRPage">
11 | <div id="SRIndex">
12 | <div class="SRStatus" id="Loading">Loading...</div>
13 | <div id="SRResults"></div>
14 | <script type="text/javascript">
15 | /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
16 | createResults();
17 | /* @license-end */
18 | </script>
19 | <div class="SRStatus" id="Searching">Searching...</div>
20 | <div class="SRStatus" id="NoMatches">No Matches</div>
21 | <script type="text/javascript">
22 | /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
23 | document.getElementById("Loading").style.display="none";
24 | document.getElementById("NoMatches").style.display="none";
25 | var searchResults = new SearchResults("searchResults");
26 | searchResults.Search();
27 | window.addEventListener("message", function(event) {
28 |   if (event.data == "take_focus") {
29 |     var elem = searchResults.NavNext(0);
30 |     if (elem) elem.focus();
31 |   }
32 | });
33 | /* @license-end */
34 | </script>
35 | </div>
36 | </body>
37 | </html>
38 | 


--------------------------------------------------------------------------------
/docs/search/groups_6.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 |   ['initialized_20re_20allocation_0',['Zero initialized re-allocation',['../group__zeroinit.html',1,'']]],
4 |   ['introspection_1',['Heap Introspection',['../group__analysis.html',1,'']]]
5 | ];
6 | 


--------------------------------------------------------------------------------
/docs/search/groups_7.html:
--------------------------------------------------------------------------------
 1 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 2 | <html xmlns="http://www.w3.org/1999/xhtml">
 3 | <head><title></title>
 4 | <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 5 | <meta name="generator" content="Doxygen 1.9.1"/>
 6 | <link rel="stylesheet" type="text/css" href="search.css"/>
 7 | <script type="text/javascript" src="groups_7.js"></script>
 8 | <script type="text/javascript" src="search.js"></script>
 9 | </head>
10 | <body class="SRPage">
11 | <div id="SRIndex">
12 | <div class="SRStatus" id="Loading">Loading...</div>
13 | <div id="SRResults"></div>
14 | <script type="text/javascript">
15 | /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
16 | createResults();
17 | /* @license-end */
18 | </script>
19 | <div class="SRStatus" id="Searching">Searching...</div>
20 | <div class="SRStatus" id="NoMatches">No Matches</div>
21 | <script type="text/javascript">
22 | /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
23 | document.getElementById("Loading").style.display="none";
24 | document.getElementById("NoMatches").style.display="none";
25 | var searchResults = new SearchResults("searchResults");
26 | searchResults.Search();
27 | window.addEventListener("message", function(event) {
28 |   if (event.data == "take_focus") {
29 |     var elem = searchResults.NavNext(0);
30 |     if (elem) elem.focus();
31 |   }
32 | });
33 | /* @license-end */
34 | </script>
35 | </div>
36 | </body>
37 | </html>
38 | 


--------------------------------------------------------------------------------
/docs/search/groups_7.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 |   ['macros_0',['Typed Macros',['../group__typed.html',1,'']]]
4 | ];
5 | 


--------------------------------------------------------------------------------
/docs/search/groups_8.html:
--------------------------------------------------------------------------------
 1 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 2 | <html xmlns="http://www.w3.org/1999/xhtml">
 3 | <head><title></title>
 4 | <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 5 | <meta name="generator" content="Doxygen 1.9.1"/>
 6 | <link rel="stylesheet" type="text/css" href="search.css"/>
 7 | <script type="text/javascript" src="groups_8.js"></script>
 8 | <script type="text/javascript" src="search.js"></script>
 9 | </head>
10 | <body class="SRPage">
11 | <div id="SRIndex">
12 | <div class="SRStatus" id="Loading">Loading...</div>
13 | <div id="SRResults"></div>
14 | <script type="text/javascript">
15 | /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
16 | createResults();
17 | /* @license-end */
18 | </script>
19 | <div class="SRStatus" id="Searching">Searching...</div>
20 | <div class="SRStatus" id="NoMatches">No Matches</div>
21 | <script type="text/javascript">
22 | /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
23 | document.getElementById("Loading").style.display="none";
24 | document.getElementById("NoMatches").style.display="none";
25 | var searchResults = new SearchResults("searchResults");
26 | searchResults.Search();
27 | window.addEventListener("message", function(event) {
28 |   if (event.data == "take_focus") {
29 |     var elem = searchResults.NavNext(0);
30 |     if (elem) elem.focus();
31 |   }
32 | });
33 | /* @license-end */
34 | </script>
35 | </div>
36 | </body>
37 | </html>
38 | 


--------------------------------------------------------------------------------
/docs/search/groups_8.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 |   ['options_0',['Runtime Options',['../group__options.html',1,'']]]
4 | ];
5 | 


--------------------------------------------------------------------------------
/docs/search/groups_9.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 |   ['posix_0',['Posix',['../group__posix.html',1,'']]]
4 | ];
5 | 


--------------------------------------------------------------------------------
/docs/search/groups_a.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 |   ['re_20allocation_0',['Zero initialized re-allocation',['../group__zeroinit.html',1,'']]],
4 |   ['runtime_20options_1',['Runtime Options',['../group__options.html',1,'']]]
5 | ];
6 | 


--------------------------------------------------------------------------------
/docs/search/groups_b.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 |   ['typed_20macros_0',['Typed Macros',['../group__typed.html',1,'']]]
4 | ];
5 | 


--------------------------------------------------------------------------------
/docs/search/groups_c.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 |   ['wrappers_0',['C++ wrappers',['../group__cpp.html',1,'']]]
4 | ];
5 | 


--------------------------------------------------------------------------------
/docs/search/groups_d.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 |   ['zero_20initialized_20re_20allocation_0',['Zero initialized re-allocation',['../group__zeroinit.html',1,'']]]
4 | ];
5 | 


--------------------------------------------------------------------------------
/docs/search/mag_sel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mimalloc/09a27098aa6e9286518bd9c74e6ffa7199c3f04e/docs/search/mag_sel.png


--------------------------------------------------------------------------------
/docs/search/nomatches.html:
--------------------------------------------------------------------------------
 1 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 2 | <html xmlns="http://www.w3.org/1999/xhtml">
 3 | <head><title></title>
 4 | <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 5 | <link rel="stylesheet" type="text/css" href="search.css"/>
 6 | <script type="text/javascript" src="search.js"></script>
 7 | </head>
 8 | <body class="SRPage">
 9 | <div id="SRIndex">
10 | <div class="SRStatus" id="NoMatches">No Matches</div>
11 | </div>
12 | </body>
13 | </html>
14 | 


--------------------------------------------------------------------------------
/docs/search/pages_0.html:
--------------------------------------------------------------------------------
 1 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 2 | <html xmlns="http://www.w3.org/1999/xhtml">
 3 | <head><title></title>
 4 | <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 5 | <meta name="generator" content="Doxygen 1.9.1"/>
 6 | <link rel="stylesheet" type="text/css" href="search.css"/>
 7 | <script type="text/javascript" src="pages_0.js"></script>
 8 | <script type="text/javascript" src="search.js"></script>
 9 | </head>
10 | <body class="SRPage">
11 | <div id="SRIndex">
12 | <div class="SRStatus" id="Loading">Loading...</div>
13 | <div id="SRResults"></div>
14 | <script type="text/javascript">
15 | /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
16 | createResults();
17 | /* @license-end */
18 | </script>
19 | <div class="SRStatus" id="Searching">Searching...</div>
20 | <div class="SRStatus" id="NoMatches">No Matches</div>
21 | <script type="text/javascript">
22 | /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
23 | document.getElementById("Loading").style.display="none";
24 | document.getElementById("NoMatches").style.display="none";
25 | var searchResults = new SearchResults("searchResults");
26 | searchResults.Search();
27 | window.addEventListener("message", function(event) {
28 |   if (event.data == "take_focus") {
29 |     var elem = searchResults.NavNext(0);
30 |     if (elem) elem.focus();
31 |   }
32 | });
33 | /* @license-end */
34 | </script>
35 | </div>
36 | </body>
37 | </html>
38 | 


--------------------------------------------------------------------------------
/docs/search/pages_0.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 |   ['building_0',['Building',['../build.html',1,'']]]
4 | ];
5 | 


--------------------------------------------------------------------------------
/docs/search/pages_1.html:
--------------------------------------------------------------------------------
 1 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 2 | <html xmlns="http://www.w3.org/1999/xhtml">
 3 | <head><title></title>
 4 | <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 5 | <meta name="generator" content="Doxygen 1.9.1"/>
 6 | <link rel="stylesheet" type="text/css" href="search.css"/>
 7 | <script type="text/javascript" src="pages_1.js"></script>
 8 | <script type="text/javascript" src="search.js"></script>
 9 | </head>
10 | <body class="SRPage">
11 | <div id="SRIndex">
12 | <div class="SRStatus" id="Loading">Loading...</div>
13 | <div id="SRResults"></div>
14 | <script type="text/javascript">
15 | /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
16 | createResults();
17 | /* @license-end */
18 | </script>
19 | <div class="SRStatus" id="Searching">Searching...</div>
20 | <div class="SRStatus" id="NoMatches">No Matches</div>
21 | <script type="text/javascript">
22 | /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
23 | document.getElementById("Loading").style.display="none";
24 | document.getElementById("NoMatches").style.display="none";
25 | var searchResults = new SearchResults("searchResults");
26 | searchResults.Search();
27 | window.addEventListener("message", function(event) {
28 |   if (event.data == "take_focus") {
29 |     var elem = searchResults.NavNext(0);
30 |     if (elem) elem.focus();
31 |   }
32 | });
33 | /* @license-end */
34 | </script>
35 | </div>
36 | </body>
37 | </html>
38 | 


--------------------------------------------------------------------------------
/docs/search/pages_1.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 |   ['environment_20options_0',['Environment Options',['../environment.html',1,'']]]
4 | ];
5 | 


--------------------------------------------------------------------------------
/docs/search/pages_2.html:
--------------------------------------------------------------------------------
 1 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 2 | <html xmlns="http://www.w3.org/1999/xhtml">
 3 | <head><title></title>
 4 | <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 5 | <meta name="generator" content="Doxygen 1.9.1"/>
 6 | <link rel="stylesheet" type="text/css" href="search.css"/>
 7 | <script type="text/javascript" src="pages_2.js"></script>
 8 | <script type="text/javascript" src="search.js"></script>
 9 | </head>
10 | <body class="SRPage">
11 | <div id="SRIndex">
12 | <div class="SRStatus" id="Loading">Loading...</div>
13 | <div id="SRResults"></div>
14 | <script type="text/javascript">
15 | /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
16 | createResults();
17 | /* @license-end */
18 | </script>
19 | <div class="SRStatus" id="Searching">Searching...</div>
20 | <div class="SRStatus" id="NoMatches">No Matches</div>
21 | <script type="text/javascript">
22 | /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
23 | document.getElementById("Loading").style.display="none";
24 | document.getElementById("NoMatches").style.display="none";
25 | var searchResults = new SearchResults("searchResults");
26 | searchResults.Search();
27 | window.addEventListener("message", function(event) {
28 |   if (event.data == "take_focus") {
29 |     var elem = searchResults.NavNext(0);
30 |     if (elem) elem.focus();
31 |   }
32 | });
33 | /* @license-end */
34 | </script>
35 | </div>
36 | </body>
37 | </html>
38 | 


--------------------------------------------------------------------------------
/docs/search/pages_2.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 |   ['library_0',['Using the library',['../using.html',1,'']]]
4 | ];
5 | 


--------------------------------------------------------------------------------
/docs/search/pages_3.html:
--------------------------------------------------------------------------------
 1 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 2 | <html xmlns="http://www.w3.org/1999/xhtml">
 3 | <head><title></title>
 4 | <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 5 | <meta name="generator" content="Doxygen 1.9.1"/>
 6 | <link rel="stylesheet" type="text/css" href="search.css"/>
 7 | <script type="text/javascript" src="pages_3.js"></script>
 8 | <script type="text/javascript" src="search.js"></script>
 9 | </head>
10 | <body class="SRPage">
11 | <div id="SRIndex">
12 | <div class="SRStatus" id="Loading">Loading...</div>
13 | <div id="SRResults"></div>
14 | <script type="text/javascript">
15 | /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
16 | createResults();
17 | /* @license-end */
18 | </script>
19 | <div class="SRStatus" id="Searching">Searching...</div>
20 | <div class="SRStatus" id="NoMatches">No Matches</div>
21 | <script type="text/javascript">
22 | /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
23 | document.getElementById("Loading").style.display="none";
24 | document.getElementById("NoMatches").style.display="none";
25 | var searchResults = new SearchResults("searchResults");
26 | searchResults.Search();
27 | window.addEventListener("message", function(event) {
28 |   if (event.data == "take_focus") {
29 |     var elem = searchResults.NavNext(0);
30 |     if (elem) elem.focus();
31 |   }
32 | });
33 | /* @license-end */
34 | </script>
35 | </div>
36 | </body>
37 | </html>
38 | 


--------------------------------------------------------------------------------
/docs/search/pages_3.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 |   ['malloc_0',['Overriding Malloc',['../overrides.html',1,'']]],
4 |   ['malloc_1',['mi-malloc',['../index.html',1,'']]],
5 |   ['mi_20malloc_2',['mi-malloc',['../index.html',1,'']]]
6 | ];
7 | 


--------------------------------------------------------------------------------
/docs/search/pages_4.html:
--------------------------------------------------------------------------------
 1 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 2 | <html xmlns="http://www.w3.org/1999/xhtml">
 3 | <head><title></title>
 4 | <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 5 | <meta name="generator" content="Doxygen 1.9.1"/>
 6 | <link rel="stylesheet" type="text/css" href="search.css"/>
 7 | <script type="text/javascript" src="pages_4.js"></script>
 8 | <script type="text/javascript" src="search.js"></script>
 9 | </head>
10 | <body class="SRPage">
11 | <div id="SRIndex">
12 | <div class="SRStatus" id="Loading">Loading...</div>
13 | <div id="SRResults"></div>
14 | <script type="text/javascript">
15 | /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
16 | createResults();
17 | /* @license-end */
18 | </script>
19 | <div class="SRStatus" id="Searching">Searching...</div>
20 | <div class="SRStatus" id="NoMatches">No Matches</div>
21 | <script type="text/javascript">
22 | /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
23 | document.getElementById("Loading").style.display="none";
24 | document.getElementById("NoMatches").style.display="none";
25 | var searchResults = new SearchResults("searchResults");
26 | searchResults.Search();
27 | window.addEventListener("message", function(event) {
28 |   if (event.data == "take_focus") {
29 |     var elem = searchResults.NavNext(0);
30 |     if (elem) elem.focus();
31 |   }
32 | });
33 | /* @license-end */
34 | </script>
35 | </div>
36 | </body>
37 | </html>
38 | 


--------------------------------------------------------------------------------
/docs/search/pages_4.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 |   ['options_0',['Environment Options',['../environment.html',1,'']]],
4 |   ['overriding_20malloc_1',['Overriding Malloc',['../overrides.html',1,'']]]
5 | ];
6 | 


--------------------------------------------------------------------------------
/docs/search/pages_5.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 |   ['performance_0',['Performance',['../bench.html',1,'']]]
4 | ];
5 | 


--------------------------------------------------------------------------------
/docs/search/pages_6.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 |   ['the_20library_0',['Using the library',['../using.html',1,'']]]
4 | ];
5 | 


--------------------------------------------------------------------------------
/docs/search/pages_7.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 |   ['using_20the_20library_0',['Using the library',['../using.html',1,'']]]
4 | ];
5 | 


--------------------------------------------------------------------------------
/docs/search/search_l.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mimalloc/09a27098aa6e9286518bd9c74e6ffa7199c3f04e/docs/search/search_l.png


--------------------------------------------------------------------------------
/docs/search/search_m.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mimalloc/09a27098aa6e9286518bd9c74e6ffa7199c3f04e/docs/search/search_m.png


--------------------------------------------------------------------------------
/docs/search/search_r.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mimalloc/09a27098aa6e9286518bd9c74e6ffa7199c3f04e/docs/search/search_r.png


--------------------------------------------------------------------------------
/docs/search/searchdata.js:
--------------------------------------------------------------------------------
 1 | var indexSectionsWithContent =
 2 | {
 3 |   0: "_abcefhilmoprtuwz",
 4 |   1: "m",
 5 |   2: "m",
 6 |   3: "bcfhru",
 7 |   4: "m",
 8 |   5: "m",
 9 |   6: "_m",
10 |   7: "abcefhimoprtwz",
11 |   8: "belmoptu"
12 | };
13 | 
14 | var indexSectionNames =
15 | {
16 |   0: "all",
17 |   1: "classes",
18 |   2: "functions",
19 |   3: "variables",
20 |   4: "typedefs",
21 |   5: "enums",
22 |   6: "enumvalues",
23 |   7: "groups",
24 |   8: "pages"
25 | };
26 | 
27 | var indexSectionLabels =
28 | {
29 |   0: "All",
30 |   1: "Data Structures",
31 |   2: "Functions",
32 |   3: "Variables",
33 |   4: "Typedefs",
34 |   5: "Enumerations",
35 |   6: "Enumerator",
36 |   7: "Modules",
37 |   8: "Pages"
38 | };
39 | 
40 | 


--------------------------------------------------------------------------------
/docs/search/typedefs_0.html:
--------------------------------------------------------------------------------
 1 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 2 | <html xmlns="http://www.w3.org/1999/xhtml">
 3 | <head><title></title>
 4 | <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 5 | <meta name="generator" content="Doxygen 1.9.1"/>
 6 | <link rel="stylesheet" type="text/css" href="search.css"/>
 7 | <script type="text/javascript" src="typedefs_0.js"></script>
 8 | <script type="text/javascript" src="search.js"></script>
 9 | </head>
10 | <body class="SRPage">
11 | <div id="SRIndex">
12 | <div class="SRStatus" id="Loading">Loading...</div>
13 | <div id="SRResults"></div>
14 | <script type="text/javascript">
15 | /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
16 | createResults();
17 | /* @license-end */
18 | </script>
19 | <div class="SRStatus" id="Searching">Searching...</div>
20 | <div class="SRStatus" id="NoMatches">No Matches</div>
21 | <script type="text/javascript">
22 | /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
23 | document.getElementById("Loading").style.display="none";
24 | document.getElementById("NoMatches").style.display="none";
25 | var searchResults = new SearchResults("searchResults");
26 | searchResults.Search();
27 | window.addEventListener("message", function(event) {
28 |   if (event.data == "take_focus") {
29 |     var elem = searchResults.NavNext(0);
30 |     if (elem) elem.focus();
31 |   }
32 | });
33 | /* @license-end */
34 | </script>
35 | </div>
36 | </body>
37 | </html>
38 | 


--------------------------------------------------------------------------------
/docs/search/typedefs_0.js:
--------------------------------------------------------------------------------
 1 | var searchData=
 2 | [
 3 |   ['mi_5farena_5fid_5ft_0',['mi_arena_id_t',['../group__extended.html#ga99fe38650d0b02e0e0f89ee024db91d3',1,'mimalloc-doc.h']]],
 4 |   ['mi_5fblock_5fvisit_5ffun_1',['mi_block_visit_fun',['../group__analysis.html#ga8255dc9371e6b299d9802a610c4e34ec',1,'mimalloc-doc.h']]],
 5 |   ['mi_5fdeferred_5ffree_5ffun_2',['mi_deferred_free_fun',['../group__extended.html#ga292a45f7dbc7cd23c5352ce1f0002816',1,'mimalloc-doc.h']]],
 6 |   ['mi_5ferror_5ffun_3',['mi_error_fun',['../group__extended.html#ga83fc6a688b322261e1c2deab000b0591',1,'mimalloc-doc.h']]],
 7 |   ['mi_5fheap_5ft_4',['mi_heap_t',['../group__heap.html#ga34a47cde5a5b38c29f1aa3c5e76943c2',1,'mimalloc-doc.h']]],
 8 |   ['mi_5foutput_5ffun_5',['mi_output_fun',['../group__extended.html#gadf31cea7d0332a81c8b882cbbdbadb8d',1,'mimalloc-doc.h']]],
 9 |   ['mi_5fsubproc_5fid_5ft_6',['mi_subproc_id_t',['../group__extended.html#ga8c0bcd1fee27c7641e9c3c0d991b3b7d',1,'mimalloc-doc.h']]]
10 | ];
11 | 


--------------------------------------------------------------------------------
/docs/search/typedefs_1.html:
--------------------------------------------------------------------------------
 1 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 2 | <html><head><title></title>
 3 | <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 4 | <meta name="generator" content="Doxygen 1.8.15"/>
 5 | <link rel="stylesheet" type="text/css" href="search.css"/>
 6 | <script type="text/javascript" src="typedefs_1.js"></script>
 7 | <script type="text/javascript" src="search.js"></script>
 8 | </head>
 9 | <body class="SRPage">
10 | <div id="SRIndex">
11 | <div class="SRStatus" id="Loading">Loading...</div>
12 | <div id="SRResults"></div>
13 | <script type="text/javascript"><!--
14 | /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
15 | createResults();
16 | /* @license-end */
17 | --></script>
18 | <div class="SRStatus" id="Searching">Searching...</div>
19 | <div class="SRStatus" id="NoMatches">No Matches</div>
20 | <script type="text/javascript"><!--
21 | /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
22 | document.getElementById("Loading").style.display="none";
23 | document.getElementById("NoMatches").style.display="none";
24 | var searchResults = new SearchResults("searchResults");
25 | searchResults.Search();
26 | /* @license-end */
27 | --></script>
28 | </div>
29 | </body>
30 | </html>
31 | 


--------------------------------------------------------------------------------
/docs/search/typedefs_1.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 |   ['heartbeat',['heartbeat',['../group__extended.html#ga411f6e94394a2400aa460c796beff8d8',1,'mimalloc-doc.h']]]
4 | ];
5 | 


--------------------------------------------------------------------------------
/docs/search/typedefs_2.html:
--------------------------------------------------------------------------------
 1 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 2 | <html><head><title></title>
 3 | <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 4 | <meta name="generator" content="Doxygen 1.8.15"/>
 5 | <link rel="stylesheet" type="text/css" href="search.css"/>
 6 | <script type="text/javascript" src="typedefs_2.js"></script>
 7 | <script type="text/javascript" src="search.js"></script>
 8 | </head>
 9 | <body class="SRPage">
10 | <div id="SRIndex">
11 | <div class="SRStatus" id="Loading">Loading...</div>
12 | <div id="SRResults"></div>
13 | <script type="text/javascript"><!--
14 | /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
15 | createResults();
16 | /* @license-end */
17 | --></script>
18 | <div class="SRStatus" id="Searching">Searching...</div>
19 | <div class="SRStatus" id="NoMatches">No Matches</div>
20 | <script type="text/javascript"><!--
21 | /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
22 | document.getElementById("Loading").style.display="none";
23 | document.getElementById("NoMatches").style.display="none";
24 | var searchResults = new SearchResults("searchResults");
25 | searchResults.Search();
26 | /* @license-end */
27 | --></script>
28 | </div>
29 | </body>
30 | </html>
31 | 


--------------------------------------------------------------------------------
/docs/search/typedefs_2.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 |   ['mi_5fblock_5fvisit_5ffun',['mi_block_visit_fun',['../group__analysis.html#gadfa01e2900f0e5d515ad5506b26f6d65',1,'mimalloc-doc.h']]],
4 |   ['mi_5fheap_5ft',['mi_heap_t',['../group__heap.html#ga34a47cde5a5b38c29f1aa3c5e76943c2',1,'mimalloc-doc.h']]]
5 | ];
6 | 


--------------------------------------------------------------------------------
/docs/search/variables_0.html:
--------------------------------------------------------------------------------
 1 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 2 | <html xmlns="http://www.w3.org/1999/xhtml">
 3 | <head><title></title>
 4 | <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 5 | <meta name="generator" content="Doxygen 1.9.1"/>
 6 | <link rel="stylesheet" type="text/css" href="search.css"/>
 7 | <script type="text/javascript" src="variables_0.js"></script>
 8 | <script type="text/javascript" src="search.js"></script>
 9 | </head>
10 | <body class="SRPage">
11 | <div id="SRIndex">
12 | <div class="SRStatus" id="Loading">Loading...</div>
13 | <div id="SRResults"></div>
14 | <script type="text/javascript">
15 | /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
16 | createResults();
17 | /* @license-end */
18 | </script>
19 | <div class="SRStatus" id="Searching">Searching...</div>
20 | <div class="SRStatus" id="NoMatches">No Matches</div>
21 | <script type="text/javascript">
22 | /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
23 | document.getElementById("Loading").style.display="none";
24 | document.getElementById("NoMatches").style.display="none";
25 | var searchResults = new SearchResults("searchResults");
26 | searchResults.Search();
27 | window.addEventListener("message", function(event) {
28 |   if (event.data == "take_focus") {
29 |     var elem = searchResults.NavNext(0);
30 |     if (elem) elem.focus();
31 |   }
32 | });
33 | /* @license-end */
34 | </script>
35 | </div>
36 | </body>
37 | </html>
38 | 


--------------------------------------------------------------------------------
/docs/search/variables_0.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 |   ['block_5fsize_0',['block_size',['../group__analysis.html#a332a6c14d736a99699d5453a1cb04b41',1,'mi_heap_area_t']]],
4 |   ['blocks_1',['blocks',['../group__analysis.html#ae0085e6e1cf059a4eb7767e30e9991b8',1,'mi_heap_area_t']]]
5 | ];
6 | 


--------------------------------------------------------------------------------
/docs/search/variables_1.html:
--------------------------------------------------------------------------------
 1 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 2 | <html xmlns="http://www.w3.org/1999/xhtml">
 3 | <head><title></title>
 4 | <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 5 | <meta name="generator" content="Doxygen 1.9.1"/>
 6 | <link rel="stylesheet" type="text/css" href="search.css"/>
 7 | <script type="text/javascript" src="variables_1.js"></script>
 8 | <script type="text/javascript" src="search.js"></script>
 9 | </head>
10 | <body class="SRPage">
11 | <div id="SRIndex">
12 | <div class="SRStatus" id="Loading">Loading...</div>
13 | <div id="SRResults"></div>
14 | <script type="text/javascript">
15 | /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
16 | createResults();
17 | /* @license-end */
18 | </script>
19 | <div class="SRStatus" id="Searching">Searching...</div>
20 | <div class="SRStatus" id="NoMatches">No Matches</div>
21 | <script type="text/javascript">
22 | /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
23 | document.getElementById("Loading").style.display="none";
24 | document.getElementById("NoMatches").style.display="none";
25 | var searchResults = new SearchResults("searchResults");
26 | searchResults.Search();
27 | window.addEventListener("message", function(event) {
28 |   if (event.data == "take_focus") {
29 |     var elem = searchResults.NavNext(0);
30 |     if (elem) elem.focus();
31 |   }
32 | });
33 | /* @license-end */
34 | </script>
35 | </div>
36 | </body>
37 | </html>
38 | 


--------------------------------------------------------------------------------
/docs/search/variables_1.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 |   ['committed_0',['committed',['../group__analysis.html#ab47526df656d8837ec3e97f11b83f835',1,'mi_heap_area_t']]]
4 | ];
5 | 


--------------------------------------------------------------------------------
/docs/search/variables_2.html:
--------------------------------------------------------------------------------
 1 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 2 | <html xmlns="http://www.w3.org/1999/xhtml">
 3 | <head><title></title>
 4 | <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 5 | <meta name="generator" content="Doxygen 1.9.1"/>
 6 | <link rel="stylesheet" type="text/css" href="search.css"/>
 7 | <script type="text/javascript" src="variables_2.js"></script>
 8 | <script type="text/javascript" src="search.js"></script>
 9 | </head>
10 | <body class="SRPage">
11 | <div id="SRIndex">
12 | <div class="SRStatus" id="Loading">Loading...</div>
13 | <div id="SRResults"></div>
14 | <script type="text/javascript">
15 | /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
16 | createResults();
17 | /* @license-end */
18 | </script>
19 | <div class="SRStatus" id="Searching">Searching...</div>
20 | <div class="SRStatus" id="NoMatches">No Matches</div>
21 | <script type="text/javascript">
22 | /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
23 | document.getElementById("Loading").style.display="none";
24 | document.getElementById("NoMatches").style.display="none";
25 | var searchResults = new SearchResults("searchResults");
26 | searchResults.Search();
27 | window.addEventListener("message", function(event) {
28 |   if (event.data == "take_focus") {
29 |     var elem = searchResults.NavNext(0);
30 |     if (elem) elem.focus();
31 |   }
32 | });
33 | /* @license-end */
34 | </script>
35 | </div>
36 | </body>
37 | </html>
38 | 


--------------------------------------------------------------------------------
/docs/search/variables_2.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 |   ['full_5fblock_5fsize_0',['full_block_size',['../group__analysis.html#ab53664e31d7fe2564f8d42041ef75cb3',1,'mi_heap_area_t']]]
4 | ];
5 | 


--------------------------------------------------------------------------------
/docs/search/variables_3.html:
--------------------------------------------------------------------------------
 1 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 2 | <html xmlns="http://www.w3.org/1999/xhtml">
 3 | <head><title></title>
 4 | <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 5 | <meta name="generator" content="Doxygen 1.9.1"/>
 6 | <link rel="stylesheet" type="text/css" href="search.css"/>
 7 | <script type="text/javascript" src="variables_3.js"></script>
 8 | <script type="text/javascript" src="search.js"></script>
 9 | </head>
10 | <body class="SRPage">
11 | <div id="SRIndex">
12 | <div class="SRStatus" id="Loading">Loading...</div>
13 | <div id="SRResults"></div>
14 | <script type="text/javascript">
15 | /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
16 | createResults();
17 | /* @license-end */
18 | </script>
19 | <div class="SRStatus" id="Searching">Searching...</div>
20 | <div class="SRStatus" id="NoMatches">No Matches</div>
21 | <script type="text/javascript">
22 | /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
23 | document.getElementById("Loading").style.display="none";
24 | document.getElementById("NoMatches").style.display="none";
25 | var searchResults = new SearchResults("searchResults");
26 | searchResults.Search();
27 | window.addEventListener("message", function(event) {
28 |   if (event.data == "take_focus") {
29 |     var elem = searchResults.NavNext(0);
30 |     if (elem) elem.focus();
31 |   }
32 | });
33 | /* @license-end */
34 | </script>
35 | </div>
36 | </body>
37 | </html>
38 | 


--------------------------------------------------------------------------------
/docs/search/variables_3.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 |   ['heap_5ftag_0',['heap_tag',['../group__analysis.html#a2b7a0c92ece8daf46b558efc990ebdc1',1,'mi_heap_area_t']]]
4 | ];
5 | 


--------------------------------------------------------------------------------
/docs/search/variables_4.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 |   ['reserved_0',['reserved',['../group__analysis.html#ae848a3e6840414891035423948ca0383',1,'mi_heap_area_t']]]
4 | ];
5 | 


--------------------------------------------------------------------------------
/docs/splitbar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mimalloc/09a27098aa6e9286518bd9c74e6ffa7199c3f04e/docs/splitbar.png


--------------------------------------------------------------------------------
/docs/sync_off.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mimalloc/09a27098aa6e9286518bd9c74e6ffa7199c3f04e/docs/sync_off.png


--------------------------------------------------------------------------------
/docs/sync_on.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mimalloc/09a27098aa6e9286518bd9c74e6ffa7199c3f04e/docs/sync_on.png


--------------------------------------------------------------------------------
/docs/tab_a.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mimalloc/09a27098aa6e9286518bd9c74e6ffa7199c3f04e/docs/tab_a.png


--------------------------------------------------------------------------------
/docs/tab_b.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mimalloc/09a27098aa6e9286518bd9c74e6ffa7199c3f04e/docs/tab_b.png


--------------------------------------------------------------------------------
/docs/tab_h.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mimalloc/09a27098aa6e9286518bd9c74e6ffa7199c3f04e/docs/tab_h.png


--------------------------------------------------------------------------------
/docs/tab_s.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mimalloc/09a27098aa6e9286518bd9c74e6ffa7199c3f04e/docs/tab_s.png


--------------------------------------------------------------------------------
/docs/tabs.css:
--------------------------------------------------------------------------------
 1 | .tabs, .tabs2, .tabs3 {
 2 |     background-image: url('tab_b.png');
 3 |     width: 100%;
 4 |     z-index: 101;
 5 |     font-size: 13px;
 6 |     font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif;
 7 |     display: table;
 8 | }
 9 | 
10 | .tabs2 {
11 |     font-size: 10px;
12 | }
13 | .tabs3 {
14 |     font-size: 9px;
15 | }
16 | 
17 | .tablist {
18 |     margin: 0;
19 |     padding: 0;
20 |     display: block;
21 | }
22 | 
23 | .tablist li {
24 |     float: left;
25 |     display: table-cell;
26 |     background-image: url('tab_b.png');
27 |     line-height: 36px;
28 |     list-style: none;
29 | }
30 | 
31 | .tablist a {
32 |     display: block;
33 |     padding: 0 20px;
34 |     font-weight: bold;
35 |     background-image:url('tab_s.png');
36 |     background-repeat:no-repeat;
37 |     background-position:right;
38 |     color: #040404;
39 |     text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
40 |     text-decoration: none;
41 |     outline: none;
42 | }
43 | 
44 | .tablist a:focus {
45 |     outline: auto;
46 |     z-index: 10;
47 |     position: relative;
48 | }
49 | 
50 | .tabs3 .tablist a {
51 |     padding: 0 10px;
52 | }
53 | 
54 | .tablist a:hover {
55 |     background-image: url('tab_h.png');
56 |     background-repeat:repeat-x;
57 |     color: white;
58 |     text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
59 |     text-decoration: none;
60 | }
61 | 
62 | .tablist li.current a {
63 |     background-image: url('tab_a.png');
64 |     background-repeat:repeat-x;
65 |     color: white;
66 |     text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
67 | }
68 | 
69 | 


--------------------------------------------------------------------------------
/docs/topics.js:
--------------------------------------------------------------------------------
 1 | var topics =
 2 | [
 3 |     [ "Basic Allocation", "group__malloc.html", "group__malloc" ],
 4 |     [ "Extended Functions", "group__extended.html", "group__extended" ],
 5 |     [ "Aligned Allocation", "group__aligned.html", "group__aligned" ],
 6 |     [ "Heap Allocation", "group__heap.html", "group__heap" ],
 7 |     [ "Zero initialized re-allocation", "group__zeroinit.html", "group__zeroinit" ],
 8 |     [ "Typed Macros", "group__typed.html", "group__typed" ],
 9 |     [ "Heap Introspection", "group__analysis.html", "group__analysis" ],
10 |     [ "Runtime Options", "group__options.html", "group__options" ],
11 |     [ "Posix", "group__posix.html", "group__posix" ],
12 |     [ "C++ wrappers", "group__cpp.html", "group__cpp" ]
13 | ];


--------------------------------------------------------------------------------
/ide/vs2022/mimalloc-lib.vcxproj.filters:
--------------------------------------------------------------------------------
  1 | <?xml version="1.0" encoding="utf-8"?>
  2 | <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  3 |   <ItemGroup>
  4 |     <ClCompile Include="..\..\src\alloc.c">
  5 |       <Filter>Sources</Filter>
  6 |     </ClCompile>
  7 |     <ClCompile Include="..\..\src\alloc-aligned.c">
  8 |       <Filter>Sources</Filter>
  9 |     </ClCompile>
 10 |     <ClCompile Include="..\..\src\alloc-override.c">
 11 |       <Filter>Sources</Filter>
 12 |     </ClCompile>
 13 |     <ClCompile Include="..\..\src\alloc-posix.c">
 14 |       <Filter>Sources</Filter>
 15 |     </ClCompile>
 16 |     <ClCompile Include="..\..\src\arena.c">
 17 |       <Filter>Sources</Filter>
 18 |     </ClCompile>
 19 |     <ClCompile Include="..\..\src\bitmap.c">
 20 |       <Filter>Sources</Filter>
 21 |     </ClCompile>
 22 |     <ClCompile Include="..\..\src\free.c">
 23 |       <Filter>Sources</Filter>
 24 |     </ClCompile>
 25 |     <ClCompile Include="..\..\src\heap.c">
 26 |       <Filter>Sources</Filter>
 27 |     </ClCompile>
 28 |     <ClCompile Include="..\..\src\init.c">
 29 |       <Filter>Sources</Filter>
 30 |     </ClCompile>
 31 |     <ClCompile Include="..\..\src\libc.c">
 32 |       <Filter>Sources</Filter>
 33 |     </ClCompile>
 34 |     <ClCompile Include="..\..\src\options.c">
 35 |       <Filter>Sources</Filter>
 36 |     </ClCompile>
 37 |     <ClCompile Include="..\..\src\os.c">
 38 |       <Filter>Sources</Filter>
 39 |     </ClCompile>
 40 |     <ClCompile Include="..\..\src\page.c">
 41 |       <Filter>Sources</Filter>
 42 |     </ClCompile>
 43 |     <ClCompile Include="..\..\src\page-queue.c">
 44 |       <Filter>Sources</Filter>
 45 |     </ClCompile>
 46 |     <ClCompile Include="..\..\src\prim\windows\prim.c">
 47 |       <Filter>Sources</Filter>
 48 |     </ClCompile>
 49 |     <ClCompile Include="..\..\src\prim\prim.c">
 50 |       <Filter>Sources</Filter>
 51 |     </ClCompile>
 52 |     <ClCompile Include="..\..\src\random.c">
 53 |       <Filter>Sources</Filter>
 54 |     </ClCompile>
 55 |     <ClCompile Include="..\..\src\segment.c">
 56 |       <Filter>Sources</Filter>
 57 |     </ClCompile>
 58 |     <ClCompile Include="..\..\src\segment-map.c">
 59 |       <Filter>Sources</Filter>
 60 |     </ClCompile>
 61 |     <ClCompile Include="..\..\src\stats.c">
 62 |       <Filter>Sources</Filter>
 63 |     </ClCompile>
 64 |     <ClCompile Include="..\..\src\arena-abandon.c">
 65 |       <Filter>Sources</Filter>
 66 |     </ClCompile>
 67 |   </ItemGroup>
 68 |   <ItemGroup>
 69 |     <ClInclude Include="..\..\include\mimalloc\atomic.h">
 70 |       <Filter>Headers</Filter>
 71 |     </ClInclude>
 72 |     <ClInclude Include="..\..\src\bitmap.h">
 73 |       <Filter>Headers</Filter>
 74 |     </ClInclude>
 75 |     <ClInclude Include="..\..\include\mimalloc\internal.h">
 76 |       <Filter>Headers</Filter>
 77 |     </ClInclude>
 78 |     <ClInclude Include="$(ProjectDir)..\..\include\mimalloc.h">
 79 |       <Filter>Headers</Filter>
 80 |     </ClInclude>
 81 |     <ClInclude Include="..\..\include\mimalloc-new-delete.h">
 82 |       <Filter>Headers</Filter>
 83 |     </ClInclude>
 84 |     <ClInclude Include="$(ProjectDir)..\..\include\mimalloc-override.h">
 85 |       <Filter>Headers</Filter>
 86 |     </ClInclude>
 87 |     <ClInclude Include="..\..\include\mimalloc\track.h">
 88 |       <Filter>Headers</Filter>
 89 |     </ClInclude>
 90 |     <ClInclude Include="..\..\include\mimalloc\types.h">
 91 |       <Filter>Headers</Filter>
 92 |     </ClInclude>
 93 |     <ClInclude Include="..\..\include\mimalloc\prim.h">
 94 |       <Filter>Headers</Filter>
 95 |     </ClInclude>
 96 |     <ClInclude Include="..\..\include\mimalloc-stats.h">
 97 |       <Filter>Headers</Filter>
 98 |     </ClInclude>
 99 |   </ItemGroup>
100 |   <ItemGroup>
101 |     <Filter Include="Headers">
102 |       <UniqueIdentifier>{1430490c-e711-4ace-a1b8-36f4d5105873}</UniqueIdentifier>
103 |     </Filter>
104 |     <Filter Include="Sources">
105 |       <UniqueIdentifier>{461c78ef-04b0-44d1-a0ca-7d488abaa592}</UniqueIdentifier>
106 |     </Filter>
107 |   </ItemGroup>
108 | </Project>


--------------------------------------------------------------------------------
/ide/vs2022/mimalloc-override-dll.vcxproj.filters:
--------------------------------------------------------------------------------
  1 | <?xml version="1.0" encoding="utf-8"?>
  2 | <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  3 |   <ItemGroup>
  4 |     <ClCompile Include="..\..\src\alloc.c">
  5 |       <Filter>Sources</Filter>
  6 |     </ClCompile>
  7 |     <ClCompile Include="..\..\src\alloc-aligned.c">
  8 |       <Filter>Sources</Filter>
  9 |     </ClCompile>
 10 |     <ClCompile Include="..\..\src\alloc-override.c">
 11 |       <Filter>Sources</Filter>
 12 |     </ClCompile>
 13 |     <ClCompile Include="..\..\src\alloc-posix.c">
 14 |       <Filter>Sources</Filter>
 15 |     </ClCompile>
 16 |     <ClCompile Include="..\..\src\arena.c">
 17 |       <Filter>Sources</Filter>
 18 |     </ClCompile>
 19 |     <ClCompile Include="..\..\src\bitmap.c">
 20 |       <Filter>Sources</Filter>
 21 |     </ClCompile>
 22 |     <ClCompile Include="..\..\src\heap.c">
 23 |       <Filter>Sources</Filter>
 24 |     </ClCompile>
 25 |     <ClCompile Include="..\..\src\init.c">
 26 |       <Filter>Sources</Filter>
 27 |     </ClCompile>
 28 |     <ClCompile Include="..\..\src\libc.c">
 29 |       <Filter>Sources</Filter>
 30 |     </ClCompile>
 31 |     <ClCompile Include="..\..\src\options.c">
 32 |       <Filter>Sources</Filter>
 33 |     </ClCompile>
 34 |     <ClCompile Include="..\..\src\os.c">
 35 |       <Filter>Sources</Filter>
 36 |     </ClCompile>
 37 |     <ClCompile Include="..\..\src\page.c">
 38 |       <Filter>Sources</Filter>
 39 |     </ClCompile>
 40 |     <ClCompile Include="..\..\src\page-queue.c">
 41 |       <Filter>Sources</Filter>
 42 |     </ClCompile>
 43 |     <ClCompile Include="..\..\src\prim\windows\prim.c">
 44 |       <Filter>Sources</Filter>
 45 |     </ClCompile>
 46 |     <ClCompile Include="..\..\src\prim\prim.c">
 47 |       <Filter>Sources</Filter>
 48 |     </ClCompile>
 49 |     <ClCompile Include="..\..\src\random.c">
 50 |       <Filter>Sources</Filter>
 51 |     </ClCompile>
 52 |     <ClCompile Include="..\..\src\segment.c">
 53 |       <Filter>Sources</Filter>
 54 |     </ClCompile>
 55 |     <ClCompile Include="..\..\src\segment-map.c">
 56 |       <Filter>Sources</Filter>
 57 |     </ClCompile>
 58 |     <ClCompile Include="..\..\src\stats.c">
 59 |       <Filter>Sources</Filter>
 60 |     </ClCompile>
 61 |     <ClCompile Include="..\..\src\arena-abandon.c">
 62 |       <Filter>Sources</Filter>
 63 |     </ClCompile>
 64 |   </ItemGroup>
 65 |   <ItemGroup>
 66 |     <ClInclude Include="..\..\include\mimalloc\atomic.h">
 67 |       <Filter>Headers</Filter>
 68 |     </ClInclude>
 69 |     <ClInclude Include="..\..\src\bitmap.h">
 70 |       <Filter>Headers</Filter>
 71 |     </ClInclude>
 72 |     <ClInclude Include="..\..\include\mimalloc\internal.h">
 73 |       <Filter>Headers</Filter>
 74 |     </ClInclude>
 75 |     <ClInclude Include="$(ProjectDir)..\..\include\mimalloc.h">
 76 |       <Filter>Headers</Filter>
 77 |     </ClInclude>
 78 |     <ClInclude Include="..\..\include\mimalloc-etw.h">
 79 |       <Filter>Headers</Filter>
 80 |     </ClInclude>
 81 |     <ClInclude Include="..\..\include\mimalloc-etw-gen.h">
 82 |       <Filter>Headers</Filter>
 83 |     </ClInclude>
 84 |     <ClInclude Include="..\..\include\mimalloc-new-delete.h">
 85 |       <Filter>Headers</Filter>
 86 |     </ClInclude>
 87 |     <ClInclude Include="..\..\include\mimalloc-override.h">
 88 |       <Filter>Headers</Filter>
 89 |     </ClInclude>
 90 |     <ClInclude Include="..\..\include\mimalloc\track.h">
 91 |       <Filter>Headers</Filter>
 92 |     </ClInclude>
 93 |     <ClInclude Include="..\..\include\mimalloc\types.h">
 94 |       <Filter>Headers</Filter>
 95 |     </ClInclude>
 96 |     <ClInclude Include="..\..\include\mimalloc\prim.h">
 97 |       <Filter>Headers</Filter>
 98 |     </ClInclude>
 99 |     <ClInclude Include="..\..\include\mimalloc-stats.h">
100 |       <Filter>Headers</Filter>
101 |     </ClInclude>
102 |   </ItemGroup>
103 |   <ItemGroup>
104 |     <Filter Include="Headers">
105 |       <UniqueIdentifier>{262c6c21-e270-4ba6-bd63-4ac999307e4e}</UniqueIdentifier>
106 |     </Filter>
107 |     <Filter Include="Sources">
108 |       <UniqueIdentifier>{94b40bdc-a741-45dd-81aa-c05fabcd2970}</UniqueIdentifier>
109 |     </Filter>
110 |   </ItemGroup>
111 | </Project>


--------------------------------------------------------------------------------
/include/mimalloc-new-delete.h:
--------------------------------------------------------------------------------
 1 | /* ----------------------------------------------------------------------------
 2 | Copyright (c) 2018-2020 Microsoft Research, Daan Leijen
 3 | This is free software; you can redistribute it and/or modify it under the
 4 | terms of the MIT license. A copy of the license can be found in the file
 5 | "LICENSE" at the root of this distribution.
 6 | -----------------------------------------------------------------------------*/
 7 | #pragma once
 8 | #ifndef MIMALLOC_NEW_DELETE_H
 9 | #define MIMALLOC_NEW_DELETE_H
10 | 
11 | // ----------------------------------------------------------------------------
12 | // This header provides convenient overrides for the new and
13 | // delete operations in C++.
14 | //
15 | // This header should be included in only one source file!
16 | //
17 | // On Windows, or when linking dynamically with mimalloc, these
18 | // can be more performant than the standard new-delete operations.
19 | // See <https://en.cppreference.com/w/cpp/memory/new/operator_new>
20 | // ---------------------------------------------------------------------------
21 | #if defined(__cplusplus)
22 |   #include <new>
23 |   #include <mimalloc.h>
24 | 
25 |   #if defined(_MSC_VER) && defined(_Ret_notnull_) && defined(_Post_writable_byte_size_)
26 |   // stay consistent with VCRT definitions
27 |   #define mi_decl_new(n)          mi_decl_nodiscard mi_decl_restrict _Ret_notnull_ _Post_writable_byte_size_(n)
28 |   #define mi_decl_new_nothrow(n)  mi_decl_nodiscard mi_decl_restrict _Ret_maybenull_ _Success_(return != NULL) _Post_writable_byte_size_(n)
29 |   #else
30 |   #define mi_decl_new(n)          mi_decl_nodiscard mi_decl_restrict
31 |   #define mi_decl_new_nothrow(n)  mi_decl_nodiscard mi_decl_restrict
32 |   #endif
33 | 
34 |   void operator delete(void* p) noexcept              { mi_free(p); };
35 |   void operator delete[](void* p) noexcept            { mi_free(p); };
36 | 
37 |   void operator delete  (void* p, const std::nothrow_t&) noexcept { mi_free(p); }
38 |   void operator delete[](void* p, const std::nothrow_t&) noexcept { mi_free(p); }
39 | 
40 |   mi_decl_new(n) void* operator new(std::size_t n) noexcept(false) { return mi_new(n); }
41 |   mi_decl_new(n) void* operator new[](std::size_t n) noexcept(false) { return mi_new(n); }
42 | 
43 |   mi_decl_new_nothrow(n) void* operator new  (std::size_t n, const std::nothrow_t& tag) noexcept { (void)(tag); return mi_new_nothrow(n); }
44 |   mi_decl_new_nothrow(n) void* operator new[](std::size_t n, const std::nothrow_t& tag) noexcept { (void)(tag); return mi_new_nothrow(n); }
45 | 
46 |   #if (__cplusplus >= 201402L || _MSC_VER >= 1916)
47 |   void operator delete  (void* p, std::size_t n) noexcept { mi_free_size(p,n); };
48 |   void operator delete[](void* p, std::size_t n) noexcept { mi_free_size(p,n); };
49 |   #endif
50 | 
51 |   #if (__cplusplus > 201402L || defined(__cpp_aligned_new))
52 |   void operator delete  (void* p, std::align_val_t al) noexcept { mi_free_aligned(p, static_cast<size_t>(al)); }
53 |   void operator delete[](void* p, std::align_val_t al) noexcept { mi_free_aligned(p, static_cast<size_t>(al)); }
54 |   void operator delete  (void* p, std::size_t n, std::align_val_t al) noexcept { mi_free_size_aligned(p, n, static_cast<size_t>(al)); };
55 |   void operator delete[](void* p, std::size_t n, std::align_val_t al) noexcept { mi_free_size_aligned(p, n, static_cast<size_t>(al)); };
56 |   void operator delete  (void* p, std::align_val_t al, const std::nothrow_t&) noexcept { mi_free_aligned(p, static_cast<size_t>(al)); }
57 |   void operator delete[](void* p, std::align_val_t al, const std::nothrow_t&) noexcept { mi_free_aligned(p, static_cast<size_t>(al)); }
58 | 
59 |   void* operator new  (std::size_t n, std::align_val_t al) noexcept(false) { return mi_new_aligned(n, static_cast<size_t>(al)); }
60 |   void* operator new[](std::size_t n, std::align_val_t al) noexcept(false) { return mi_new_aligned(n, static_cast<size_t>(al)); }
61 |   void* operator new  (std::size_t n, std::align_val_t al, const std::nothrow_t&) noexcept { return mi_new_aligned_nothrow(n, static_cast<size_t>(al)); }
62 |   void* operator new[](std::size_t n, std::align_val_t al, const std::nothrow_t&) noexcept { return mi_new_aligned_nothrow(n, static_cast<size_t>(al)); }
63 |   #endif
64 | #endif
65 | 
66 | #endif // MIMALLOC_NEW_DELETE_H
67 | 


--------------------------------------------------------------------------------
/include/mimalloc-override.h:
--------------------------------------------------------------------------------
 1 | /* ----------------------------------------------------------------------------
 2 | Copyright (c) 2018-2020 Microsoft Research, Daan Leijen
 3 | This is free software; you can redistribute it and/or modify it under the
 4 | terms of the MIT license. A copy of the license can be found in the file
 5 | "LICENSE" at the root of this distribution.
 6 | -----------------------------------------------------------------------------*/
 7 | #pragma once
 8 | #ifndef MIMALLOC_OVERRIDE_H
 9 | #define MIMALLOC_OVERRIDE_H
10 | 
11 | /* ----------------------------------------------------------------------------
12 | This header can be used to statically redirect malloc/free and new/delete
13 | to the mimalloc variants. This can be useful if one can include this file on
14 | each source file in a project (but be careful when using external code to
15 | not accidentally mix pointers from different allocators).
16 | -----------------------------------------------------------------------------*/
17 | 
18 | #include <mimalloc.h>
19 | 
20 | // Standard C allocation
21 | #define malloc(n)               mi_malloc(n)
22 | #define calloc(n,c)             mi_calloc(n,c)
23 | #define realloc(p,n)            mi_realloc(p,n)
24 | #define free(p)                 mi_free(p)
25 | 
26 | #define strdup(s)               mi_strdup(s)
27 | #define strndup(s,n)            mi_strndup(s,n)
28 | #define realpath(f,n)           mi_realpath(f,n)
29 | 
30 | // Microsoft extensions
31 | #define _expand(p,n)            mi_expand(p,n)
32 | #define _msize(p)               mi_usable_size(p)
33 | #define _recalloc(p,n,c)        mi_recalloc(p,n,c)
34 | 
35 | #define _strdup(s)              mi_strdup(s)
36 | #define _strndup(s,n)           mi_strndup(s,n)
37 | #define _wcsdup(s)              (wchar_t*)mi_wcsdup((const unsigned short*)(s))
38 | #define _mbsdup(s)              mi_mbsdup(s)
39 | #define _dupenv_s(b,n,v)        mi_dupenv_s(b,n,v)
40 | #define _wdupenv_s(b,n,v)       mi_wdupenv_s((unsigned short*)(b),n,(const unsigned short*)(v))
41 | 
42 | // Various Posix and Unix variants
43 | #define reallocf(p,n)           mi_reallocf(p,n)
44 | #define malloc_size(p)          mi_usable_size(p)
45 | #define malloc_usable_size(p)   mi_usable_size(p)
46 | #define malloc_good_size(sz)    mi_malloc_good_size(sz)
47 | #define cfree(p)                mi_free(p)
48 | 
49 | #define valloc(n)               mi_valloc(n)
50 | #define pvalloc(n)              mi_pvalloc(n)
51 | #define reallocarray(p,s,n)     mi_reallocarray(p,s,n)
52 | #define reallocarr(p,s,n)       mi_reallocarr(p,s,n)
53 | #define memalign(a,n)           mi_memalign(a,n)
54 | #define aligned_alloc(a,n)      mi_aligned_alloc(a,n)
55 | #define posix_memalign(p,a,n)   mi_posix_memalign(p,a,n)
56 | #define _posix_memalign(p,a,n)  mi_posix_memalign(p,a,n)
57 | 
58 | // Microsoft aligned variants
59 | #define _aligned_malloc(n,a)                  mi_malloc_aligned(n,a)
60 | #define _aligned_realloc(p,n,a)               mi_realloc_aligned(p,n,a)
61 | #define _aligned_recalloc(p,s,n,a)            mi_aligned_recalloc(p,s,n,a)
62 | #define _aligned_msize(p,a,o)                 mi_usable_size(p)
63 | #define _aligned_free(p)                      mi_free(p)
64 | #define _aligned_offset_malloc(n,a,o)         mi_malloc_aligned_at(n,a,o)
65 | #define _aligned_offset_realloc(p,n,a,o)      mi_realloc_aligned_at(p,n,a,o)
66 | #define _aligned_offset_recalloc(p,s,n,a,o)   mi_recalloc_aligned_at(p,s,n,a,o)
67 | 
68 | #endif // MIMALLOC_OVERRIDE_H
69 | 


--------------------------------------------------------------------------------
/include/mimalloc-stats.h:
--------------------------------------------------------------------------------
  1 | /* ----------------------------------------------------------------------------
  2 | Copyright (c) 2018-2025, Microsoft Research, Daan Leijen
  3 | This is free software; you can redistribute it and/or modify it under the
  4 | terms of the MIT license. A copy of the license can be found in the file
  5 | "LICENSE" at the root of this distribution.
  6 | -----------------------------------------------------------------------------*/
  7 | #pragma once
  8 | #ifndef MIMALLOC_STATS_H
  9 | #define MIMALLOC_STATS_H
 10 | 
 11 | #include <mimalloc.h>
 12 | #include <stdint.h>
 13 | 
 14 | #define MI_STAT_VERSION   1   // increased on every backward incompatible change
 15 | 
 16 | // count allocation over time
 17 | typedef struct mi_stat_count_s {
 18 |   int64_t total;                              // total allocated
 19 |   int64_t peak;                               // peak allocation
 20 |   int64_t current;                            // current allocation
 21 | } mi_stat_count_t;
 22 | 
 23 | // counters only increase
 24 | typedef struct mi_stat_counter_s {
 25 |   int64_t total;                              // total count
 26 | } mi_stat_counter_t;
 27 | 
 28 | #define MI_STAT_FIELDS() \
 29 |   MI_STAT_COUNT(pages)                      /* count of mimalloc pages */ \
 30 |   MI_STAT_COUNT(reserved)                   /* reserved memory bytes */ \
 31 |   MI_STAT_COUNT(committed)                  /* committed bytes */ \
 32 |   MI_STAT_COUNT(reset)                      /* reset bytes */ \
 33 |   MI_STAT_COUNT(purged)                     /* purged bytes */ \
 34 |   MI_STAT_COUNT(page_committed)             /* committed memory inside pages */ \
 35 |   MI_STAT_COUNT(pages_abandoned)            /* abandonded pages count */ \
 36 |   MI_STAT_COUNT(threads)                    /* number of threads */ \
 37 |   MI_STAT_COUNT(malloc_normal)              /* allocated bytes <= MI_LARGE_OBJ_SIZE_MAX */ \
 38 |   MI_STAT_COUNT(malloc_huge)                /* allocated bytes in huge pages */ \
 39 |   MI_STAT_COUNT(malloc_requested)           /* malloc requested bytes */ \
 40 |   \
 41 |   MI_STAT_COUNTER(mmap_calls) \
 42 |   MI_STAT_COUNTER(commit_calls) \
 43 |   MI_STAT_COUNTER(reset_calls) \
 44 |   MI_STAT_COUNTER(purge_calls) \
 45 |   MI_STAT_COUNTER(arena_count)              /* number of memory arena's */ \
 46 |   MI_STAT_COUNTER(malloc_normal_count)      /* number of blocks <= MI_LARGE_OBJ_SIZE_MAX */ \
 47 |   MI_STAT_COUNTER(malloc_huge_count)        /* number of huge bloks */ \
 48 |   MI_STAT_COUNTER(malloc_guarded_count)     /* number of allocations with guard pages */ \
 49 |   \
 50 |   /* internal statistics */ \
 51 |   MI_STAT_COUNTER(arena_rollback_count) \
 52 |   MI_STAT_COUNTER(arena_purges) \
 53 |   MI_STAT_COUNTER(pages_extended)           /* number of page extensions */ \
 54 |   MI_STAT_COUNTER(pages_retire)             /* number of pages that are retired */ \
 55 |   MI_STAT_COUNTER(page_searches)            /* searches for a fresh page */ \
 56 |   /* only on v1 and v2 */ \
 57 |   MI_STAT_COUNT(segments) \
 58 |   MI_STAT_COUNT(segments_abandoned) \
 59 |   MI_STAT_COUNT(segments_cache) \
 60 |   MI_STAT_COUNT(_segments_reserved) \
 61 |   /* only on v3 */ \
 62 |   MI_STAT_COUNTER(pages_reclaim_on_alloc) \
 63 |   MI_STAT_COUNTER(pages_reclaim_on_free) \
 64 |   MI_STAT_COUNTER(pages_reabandon_full) \
 65 |   MI_STAT_COUNTER(pages_unabandon_busy_wait) \
 66 | 
 67 | 
 68 | // Define the statistics structure
 69 | #define MI_BIN_HUGE             (73U)   // see types.h
 70 | #define MI_STAT_COUNT(stat)     mi_stat_count_t stat;
 71 | #define MI_STAT_COUNTER(stat)   mi_stat_counter_t stat;
 72 | 
 73 | typedef struct mi_stats_s
 74 | {
 75 |   int version;
 76 | 
 77 |   MI_STAT_FIELDS()
 78 | 
 79 |   // future extension
 80 |   mi_stat_count_t   _stat_reserved[4];
 81 |   mi_stat_counter_t _stat_counter_reserved[4];
 82 | 
 83 |   // size segregated statistics
 84 |   mi_stat_count_t   malloc_bins[MI_BIN_HUGE+1];   // allocation per size bin
 85 |   mi_stat_count_t   page_bins[MI_BIN_HUGE+1];     // pages allocated per size bin
 86 | } mi_stats_t;
 87 | 
 88 | #undef MI_STAT_COUNT
 89 | #undef MI_STAT_COUNTER
 90 | 
 91 | // Exported definitions
 92 | #ifdef __cplusplus
 93 | extern "C" {
 94 | #endif
 95 | 
 96 | mi_decl_export void  mi_stats_get( size_t stats_size, mi_stats_t* stats ) mi_attr_noexcept;
 97 | mi_decl_export char* mi_stats_get_json( size_t buf_size, char* buf ) mi_attr_noexcept;    // use mi_free to free the result if the input buf == NULL
 98 | 
 99 | #ifdef __cplusplus
100 | }
101 | #endif
102 | 
103 | #endif // MIMALLOC_STATS_H
104 | 


--------------------------------------------------------------------------------
/include/mimalloc/track.h:
--------------------------------------------------------------------------------
  1 | /* ----------------------------------------------------------------------------
  2 | Copyright (c) 2018-2023, Microsoft Research, Daan Leijen
  3 | This is free software; you can redistribute it and/or modify it under the
  4 | terms of the MIT license. A copy of the license can be found in the file
  5 | "LICENSE" at the root of this distribution.
  6 | -----------------------------------------------------------------------------*/
  7 | #pragma once
  8 | #ifndef MIMALLOC_TRACK_H
  9 | #define MIMALLOC_TRACK_H
 10 | 
 11 | /* ------------------------------------------------------------------------------------------------------
 12 | Track memory ranges with macros for tools like Valgrind address sanitizer, or other memory checkers.
 13 | These can be defined for tracking allocation:
 14 | 
 15 |   #define mi_track_malloc_size(p,reqsize,size,zero)
 16 |   #define mi_track_free_size(p,_size)
 17 | 
 18 | The macros are set up such that the size passed to `mi_track_free_size`
 19 | always matches the size of `mi_track_malloc_size`. (currently, `size == mi_usable_size(p)`).
 20 | The `reqsize` is what the user requested, and `size >= reqsize`.
 21 | The `size` is either byte precise (and `size==reqsize`) if `MI_PADDING` is enabled,
 22 | or otherwise it is the usable block size which may be larger than the original request.
 23 | Use `_mi_block_size_of(void* p)` to get the full block size that was allocated (including padding etc).
 24 | The `zero` parameter is `true` if the allocated block is zero initialized.
 25 | 
 26 | Optional:
 27 | 
 28 |   #define mi_track_align(p,alignedp,offset,size)
 29 |   #define mi_track_resize(p,oldsize,newsize)
 30 |   #define mi_track_init()
 31 | 
 32 | The `mi_track_align` is called right after a `mi_track_malloc` for aligned pointers in a block.
 33 | The corresponding `mi_track_free` still uses the block start pointer and original size (corresponding to the `mi_track_malloc`).
 34 | The `mi_track_resize` is currently unused but could be called on reallocations within a block.
 35 | `mi_track_init` is called at program start.
 36 | 
 37 | The following macros are for tools like asan and valgrind to track whether memory is
 38 | defined, undefined, or not accessible at all:
 39 | 
 40 |   #define mi_track_mem_defined(p,size)
 41 |   #define mi_track_mem_undefined(p,size)
 42 |   #define mi_track_mem_noaccess(p,size)
 43 | 
 44 | -------------------------------------------------------------------------------------------------------*/
 45 | 
 46 | #if MI_TRACK_VALGRIND
 47 | // valgrind tool
 48 | 
 49 | #define MI_TRACK_ENABLED      1
 50 | #define MI_TRACK_HEAP_DESTROY 1           // track free of individual blocks on heap_destroy
 51 | #define MI_TRACK_TOOL         "valgrind"
 52 | 
 53 | #include <valgrind/valgrind.h>
 54 | #include <valgrind/memcheck.h>
 55 | 
 56 | #define mi_track_malloc_size(p,reqsize,size,zero) VALGRIND_MALLOCLIKE_BLOCK(p,size,MI_PADDING_SIZE /*red zone*/,zero)
 57 | #define mi_track_free_size(p,_size)               VALGRIND_FREELIKE_BLOCK(p,MI_PADDING_SIZE /*red zone*/)
 58 | #define mi_track_resize(p,oldsize,newsize)        VALGRIND_RESIZEINPLACE_BLOCK(p,oldsize,newsize,MI_PADDING_SIZE /*red zone*/)
 59 | #define mi_track_mem_defined(p,size)              VALGRIND_MAKE_MEM_DEFINED(p,size)
 60 | #define mi_track_mem_undefined(p,size)            VALGRIND_MAKE_MEM_UNDEFINED(p,size)
 61 | #define mi_track_mem_noaccess(p,size)             VALGRIND_MAKE_MEM_NOACCESS(p,size)
 62 | 
 63 | #elif MI_TRACK_ASAN
 64 | // address sanitizer
 65 | 
 66 | #define MI_TRACK_ENABLED      1
 67 | #define MI_TRACK_HEAP_DESTROY 0
 68 | #define MI_TRACK_TOOL         "asan"
 69 | 
 70 | #include <sanitizer/asan_interface.h>
 71 | 
 72 | #define mi_track_malloc_size(p,reqsize,size,zero) ASAN_UNPOISON_MEMORY_REGION(p,size)
 73 | #define mi_track_free_size(p,size)                ASAN_POISON_MEMORY_REGION(p,size)
 74 | #define mi_track_mem_defined(p,size)              ASAN_UNPOISON_MEMORY_REGION(p,size)
 75 | #define mi_track_mem_undefined(p,size)            ASAN_UNPOISON_MEMORY_REGION(p,size)
 76 | #define mi_track_mem_noaccess(p,size)             ASAN_POISON_MEMORY_REGION(p,size)
 77 | 
 78 | #elif MI_TRACK_ETW
 79 | // windows event tracing
 80 | 
 81 | #define MI_TRACK_ENABLED      1
 82 | #define MI_TRACK_HEAP_DESTROY 1
 83 | #define MI_TRACK_TOOL         "ETW"
 84 | 
 85 | #include "../src/prim/windows/etw.h"
 86 | 
 87 | #define mi_track_init()                           EventRegistermicrosoft_windows_mimalloc();
 88 | #define mi_track_malloc_size(p,reqsize,size,zero) EventWriteETW_MI_ALLOC((UINT64)(p), size)
 89 | #define mi_track_free_size(p,size)                EventWriteETW_MI_FREE((UINT64)(p), size)
 90 | 
 91 | #else
 92 | // no tracking
 93 | 
 94 | #define MI_TRACK_ENABLED      0
 95 | #define MI_TRACK_HEAP_DESTROY 0
 96 | #define MI_TRACK_TOOL         "none"
 97 | 
 98 | #define mi_track_malloc_size(p,reqsize,size,zero)
 99 | #define mi_track_free_size(p,_size)
100 | 
101 | #endif
102 | 
103 | // -------------------
104 | // Utility definitions
105 | 
106 | #ifndef mi_track_resize
107 | #define mi_track_resize(p,oldsize,newsize)      mi_track_free_size(p,oldsize); mi_track_malloc(p,newsize,false)
108 | #endif
109 | 
110 | #ifndef mi_track_align
111 | #define mi_track_align(p,alignedp,offset,size)  mi_track_mem_noaccess(p,offset)
112 | #endif
113 | 
114 | #ifndef mi_track_init
115 | #define mi_track_init()
116 | #endif
117 | 
118 | #ifndef mi_track_mem_defined
119 | #define mi_track_mem_defined(p,size)
120 | #endif
121 | 
122 | #ifndef mi_track_mem_undefined
123 | #define mi_track_mem_undefined(p,size)
124 | #endif
125 | 
126 | #ifndef mi_track_mem_noaccess
127 | #define mi_track_mem_noaccess(p,size)
128 | #endif
129 | 
130 | 
131 | #if MI_PADDING
132 | #define mi_track_malloc(p,reqsize,zero) \
133 |   if ((p)!=NULL) { \
134 |     mi_assert_internal(mi_usable_size(p)==(reqsize)); \
135 |     mi_track_malloc_size(p,reqsize,reqsize,zero); \
136 |   }
137 | #else
138 | #define mi_track_malloc(p,reqsize,zero) \
139 |   if ((p)!=NULL) { \
140 |     mi_assert_internal(mi_usable_size(p)>=(reqsize)); \
141 |     mi_track_malloc_size(p,reqsize,mi_usable_size(p),zero); \
142 |   }
143 | #endif
144 | 
145 | #endif
146 | 


--------------------------------------------------------------------------------
/mimalloc.pc.in:
--------------------------------------------------------------------------------
 1 | prefix=@CMAKE_INSTALL_PREFIX@
 2 | libdir=@mi_pc_libdir@
 3 | includedir=@mi_pc_includedir@
 4 | 
 5 | Name: @PROJECT_NAME@
 6 | Description: A compact general purpose allocator with excellent performance
 7 | Version: @PACKAGE_VERSION@
 8 | URL: https://github.com/microsoft/mimalloc/
 9 | Libs: -L${libdir} -l@mi_libname@
10 | Libs.private: @mi_pc_libraries@
11 | Cflags: -I${includedir}
12 | 


--------------------------------------------------------------------------------
/src/prim/osx/prim.c:
--------------------------------------------------------------------------------
 1 | /* ----------------------------------------------------------------------------
 2 | Copyright (c) 2018-2023, Microsoft Research, Daan Leijen
 3 | This is free software; you can redistribute it and/or modify it under the
 4 | terms of the MIT license. A copy of the license can be found in the file
 5 | "LICENSE" at the root of this distribution.
 6 | -----------------------------------------------------------------------------*/
 7 | 
 8 | // We use the unix/prim.c with the mmap API on macOSX
 9 | #include "../unix/prim.c"
10 | 


--------------------------------------------------------------------------------
/src/prim/prim.c:
--------------------------------------------------------------------------------
 1 | /* ----------------------------------------------------------------------------
 2 | Copyright (c) 2018-2023, Microsoft Research, Daan Leijen
 3 | This is free software; you can redistribute it and/or modify it under the
 4 | terms of the MIT license. A copy of the license can be found in the file
 5 | "LICENSE" at the root of this distribution.
 6 | -----------------------------------------------------------------------------*/
 7 | 
 8 | // Select the implementation of the primitives
 9 | // depending on the OS.
10 | 
11 | #if defined(_WIN32)
12 | #include "windows/prim.c"  // VirtualAlloc (Windows)
13 | 
14 | #elif defined(__APPLE__)
15 | #include "osx/prim.c"      // macOSX (actually defers to mmap in unix/prim.c)
16 | 
17 | #elif defined(__wasi__)
18 | #define MI_USE_SBRK
19 | #include "wasi/prim.c"     // memory-grow or sbrk (Wasm)
20 | 
21 | #elif defined(__EMSCRIPTEN__)
22 | #include "emscripten/prim.c" // emmalloc_*, + pthread support
23 | 
24 | #else
25 | #include "unix/prim.c"     // mmap() (Linux, macOSX, BSD, Illumnos, Haiku, DragonFly, etc.)
26 | 
27 | #endif
28 | 
29 | // Generic process initialization
30 | #ifndef MI_PRIM_HAS_PROCESS_ATTACH
31 | #if defined(__GNUC__) || defined(__clang__)
32 |   // gcc,clang: use the constructor/destructor attribute
33 |   // which for both seem to run before regular constructors/destructors
34 |   #if defined(__clang__)
35 |     #define mi_attr_constructor __attribute__((constructor(101)))
36 |     #define mi_attr_destructor  __attribute__((destructor(101)))
37 |   #else
38 |     #define mi_attr_constructor __attribute__((constructor))
39 |     #define mi_attr_destructor  __attribute__((destructor))
40 |   #endif
41 |   static void mi_attr_constructor mi_process_attach(void) {
42 |     _mi_auto_process_init();
43 |   }
44 |   static void mi_attr_destructor mi_process_detach(void) {
45 |     _mi_auto_process_done();
46 |   }
47 | #elif defined(__cplusplus)
48 |   // C++: use static initialization to detect process start/end
49 |   // This is not guaranteed to be first/last but the best we can generally do?
50 |   struct mi_init_done_t {
51 |     mi_init_done_t() {
52 |       _mi_auto_process_init();
53 |     }
54 |     ~mi_init_done_t() {
55 |       _mi_auto_process_done();
56 |     }
57 |   };
58 |   static mi_init_done_t mi_init_done;
59 |  #else
60 |   #pragma message("define a way to call _mi_auto_process_init/done on your platform")
61 | #endif
62 | #endif
63 | 
64 | // Generic allocator init/done callback
65 | #ifndef MI_PRIM_HAS_ALLOCATOR_INIT
66 | bool _mi_is_redirected(void) {
67 |   return false;
68 | }
69 | bool _mi_allocator_init(const char** message) {
70 |   if (message != NULL) { *message = NULL; }
71 |   return true;
72 | }
73 | void _mi_allocator_done(void) {
74 |   // nothing to do
75 | }
76 | #endif
77 | 


--------------------------------------------------------------------------------
/src/prim/readme.md:
--------------------------------------------------------------------------------
1 | ## Portability Primitives
2 | 
3 | This is the portability layer where all primitives needed from the OS are defined.
4 | 
5 | - `include/mimalloc/prim.h`: primitive portability API definition.
6 | - `prim.c`: Selects one of `unix/prim.c`, `wasi/prim.c`, or `windows/prim.c` depending on the host platform
7 |             (and on macOS, `osx/prim.c` defers to `unix/prim.c`).
8 | 
9 | Note: still work in progress, there may still be places in the sources that still depend on OS ifdef's.


--------------------------------------------------------------------------------
/src/prim/windows/etw-mimalloc.wprp:
--------------------------------------------------------------------------------
 1 | <WindowsPerformanceRecorder Version="1.0">
 2 |   <Profiles>
 3 |     <SystemCollector Id="WPR_initiated_WprApp_WPR_System_Collector" Name="WPR_initiated_WprApp_WPR System Collector">
 4 |       <BufferSize Value="1024" />
 5 |       <Buffers Value="100" />
 6 |     </SystemCollector>
 7 |     <EventCollector Id="Mimalloc_Collector" Name="Mimalloc Collector">
 8 |       <BufferSize Value="1024" />
 9 |       <Buffers Value="100" />
10 |     </EventCollector>
11 |     <SystemProvider Id="WPR_initiated_WprApp_WPR_System_Collector_Provider">
12 |       <Keywords>
13 |         <Keyword Value="Loader" />
14 |       </Keywords>
15 |     </SystemProvider>
16 |     <EventProvider Id="MimallocEventProvider" Name="138f4dbb-ee04-4899-aa0a-572ad4475779" NonPagedMemory="true" Stack="true">
17 |       <EventFilters FilterIn="true">
18 |         <EventId Value="100" />
19 |         <EventId Value="101" />
20 |       </EventFilters>
21 |     </EventProvider>
22 |     <Profile Id="CustomHeap.Verbose.File" Name="CustomHeap" Description="RunningProfile:CustomHeap.Verbose.File" LoggingMode="File" DetailLevel="Verbose">
23 |       <ProblemCategories>
24 |         <ProblemCategory Value="Resource Analysis" />
25 |       </ProblemCategories>
26 |       <Collectors>
27 |         <SystemCollectorId Value="WPR_initiated_WprApp_WPR_System_Collector">
28 |           <SystemProviderId Value="WPR_initiated_WprApp_WPR_System_Collector_Provider" />
29 |         </SystemCollectorId>
30 |         <EventCollectorId Value="Mimalloc_Collector">
31 |           <EventProviders>
32 |             <EventProviderId Value="MimallocEventProvider" >
33 |               <Keywords>
34 |                 <Keyword Value="100"/>
35 |                 <Keyword Value="101"/>
36 |               </Keywords>
37 |             </EventProviderId>
38 |           </EventProviders>
39 |         </EventCollectorId>
40 |       </Collectors>
41 |       <TraceMergeProperties>
42 |         <TraceMergeProperty Id="BaseVerboseTraceMergeProperties" Name="BaseTraceMergeProperties">
43 |           <DeletePreMergedTraceFiles Value="true" />
44 |           <FileCompression Value="false" />
45 |           <InjectOnly Value="false" />
46 |           <SkipMerge Value="false" />
47 |           <CustomEvents>
48 |             <CustomEvent Value="ImageId" />
49 |             <CustomEvent Value="BuildInfo" />
50 |             <CustomEvent Value="VolumeMapping" />
51 |             <CustomEvent Value="EventMetadata" />
52 |             <CustomEvent Value="PerfTrackMetadata" />
53 |             <CustomEvent Value="WinSAT" />
54 |             <CustomEvent Value="NetworkInterface" />
55 |           </CustomEvents>
56 |         </TraceMergeProperty>
57 |       </TraceMergeProperties>
58 |     </Profile>
59 |   </Profiles>
60 | </WindowsPerformanceRecorder>
61 | 
62 | 


--------------------------------------------------------------------------------
/src/prim/windows/etw.man:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/mimalloc/09a27098aa6e9286518bd9c74e6ffa7199c3f04e/src/prim/windows/etw.man


--------------------------------------------------------------------------------
/src/prim/windows/readme.md:
--------------------------------------------------------------------------------
 1 | ## Primitives:
 2 | 
 3 | - `prim.c` contains Windows primitives for OS allocation.
 4 | 
 5 | ## Event Tracing for Windows (ETW)
 6 | 
 7 | - `etw.h` is generated from `etw.man` which contains the manifest for mimalloc events.
 8 |   (100 is an allocation, 101 is for a free)
 9 | 
10 | - `etw-mimalloc.wprp` is a profile for the Windows Performance Recorder (WPR).
11 |   In an admin prompt, you can use:
12 |   ```
13 |   > wpr -start src\prim\windows\etw-mimalloc.wprp -filemode
14 |   > <my mimalloc program>
15 |   > wpr -stop test.etl
16 |   ``` 
17 |   and then open `test.etl` in the Windows Performance Analyzer (WPA).


--------------------------------------------------------------------------------
/src/static.c:
--------------------------------------------------------------------------------
 1 | /* ----------------------------------------------------------------------------
 2 | Copyright (c) 2018-2020, Microsoft Research, Daan Leijen
 3 | This is free software; you can redistribute it and/or modify it under the
 4 | terms of the MIT license. A copy of the license can be found in the file
 5 | "LICENSE" at the root of this distribution.
 6 | -----------------------------------------------------------------------------*/
 7 | #ifndef _DEFAULT_SOURCE
 8 | #define _DEFAULT_SOURCE
 9 | #endif
10 | #if defined(__sun)
11 | // same remarks as os.c for the static's context.
12 | #undef _XOPEN_SOURCE
13 | #undef _POSIX_C_SOURCE
14 | #endif
15 | 
16 | #include "mimalloc.h"
17 | #include "mimalloc/internal.h"
18 | 
19 | // For a static override we create a single object file
20 | // containing the whole library. If it is linked first
21 | // it will override all the standard library allocation
22 | // functions (on Unix's).
23 | #include "alloc.c"          // includes alloc-override.c
24 | #include "alloc-aligned.c"
25 | #include "alloc-posix.c"
26 | #include "arena.c"
27 | #include "bitmap.c"
28 | #include "heap.c"
29 | #include "init.c"
30 | #include "libc.c"
31 | #include "options.c"
32 | #include "os.c"
33 | #include "page.c"           // includes page-queue.c
34 | #include "random.c"
35 | #include "segment.c"
36 | #include "segment-map.c"
37 | #include "stats.c"
38 | #include "prim/prim.c"
39 | #if MI_OSX_ZONE
40 | #include "prim/osx/alloc-override-zone.c"
41 | #endif
42 | 


--------------------------------------------------------------------------------
/test/CMakeLists.txt:
--------------------------------------------------------------------------------
 1 | cmake_minimum_required(VERSION 3.18)
 2 | project(mimalloc-test C CXX)
 3 | 
 4 | set(CMAKE_C_STANDARD 11)
 5 | set(CMAKE_CXX_STANDARD 17)
 6 | 
 7 | # Set default build type
 8 | if (NOT CMAKE_BUILD_TYPE)
 9 |   if ("${CMAKE_BINARY_DIR}" MATCHES ".*(D|d)ebug
quot;)
10 |     message(STATUS "No build type selected, default to *** Debug ***")
11 |     set(CMAKE_BUILD_TYPE "Debug")
12 |   else()
13 |     message(STATUS "No build type selected, default to *** Release ***")
14 |     set(CMAKE_BUILD_TYPE "Release")
15 |   endif()
16 | endif()
17 | 
18 | # Import mimalloc (if installed)
19 | find_package(mimalloc 2.2 CONFIG REQUIRED)
20 | message(STATUS "Found mimalloc installed at: ${MIMALLOC_LIBRARY_DIR} (${MIMALLOC_VERSION_DIR})")
21 | 
22 | 
23 | # link with a dynamic shared library
24 | # use `LD_PRELOAD` to actually override malloc/free at runtime with mimalloc
25 | add_executable(dynamic-override  main-override.c)
26 | target_link_libraries(dynamic-override PUBLIC mimalloc)
27 | 
28 | add_executable(dynamic-override-cxx  main-override.cpp)
29 | target_link_libraries(dynamic-override-cxx PUBLIC mimalloc)
30 | 
31 | 
32 | # overriding with a static object file works reliable as the symbols in the
33 | # object file have priority over those in library files
34 | add_executable(static-override-obj main-override.c ${MIMALLOC_OBJECT_DIR}/mimalloc${CMAKE_C_OUTPUT_EXTENSION})
35 | target_include_directories(static-override-obj PUBLIC ${MIMALLOC_INCLUDE_DIR})
36 | target_link_libraries(static-override-obj PUBLIC mimalloc-static)
37 | 
38 | 
39 | # overriding with a static library works too if using the `mimalloc-override.h`
40 | # header to redefine malloc/free. (the library already overrides new/delete)
41 | add_executable(static-override-static main-override-static.c)
42 | target_link_libraries(static-override-static PUBLIC mimalloc-static)
43 | 
44 | 
45 | # overriding with a static library: this may not work if the library is linked too late
46 | # on the command line after the C runtime library; but we cannot control that well in CMake
47 | add_executable(static-override main-override.c)
48 | target_link_libraries(static-override PUBLIC mimalloc-static)
49 | 
50 | add_executable(static-override-cxx  main-override.cpp)
51 | target_link_libraries(static-override-cxx PUBLIC mimalloc-static)
52 | 
53 | 
54 | ## test memory errors
55 | add_executable(test-wrong  test-wrong.c)
56 | target_link_libraries(test-wrong PUBLIC mimalloc)
57 | 


--------------------------------------------------------------------------------
/test/main-override-dep.cpp:
--------------------------------------------------------------------------------
 1 | // Issue #981: test overriding allocation in a DLL that is compiled independent of mimalloc. 
 2 | // This is imported by the `mimalloc-test-override` project.
 3 | #include <string>
 4 | #include <iostream>
 5 | #include "main-override-dep.h"
 6 | 
 7 | std::string TestAllocInDll::GetString()
 8 | {
 9 | 	char* test = new char[128];
10 | 	memset(test, 0, 128);
11 | 	const char* t = "test";
12 | 	memcpy(test, t, 4);
13 | 	std::string r = test;
14 |   std::cout << "override-dep: GetString: " << r << "\n";
15 | 	delete[] test;
16 | 	return r;
17 | }
18 | 
19 | 
20 | class Static {
21 | private:
22 |   void* p;
23 | public:
24 |   Static() {
25 |     printf("override-dep: static constructor\n");
26 |     p = malloc(64);
27 |     return;
28 |   }
29 |   ~Static() {
30 |     free(p);
31 |     printf("override-dep: static destructor\n");
32 |     return;
33 |   }
34 | };
35 | 
36 | static Static s = Static();
37 | 
38 | 
39 | #include <windows.h>
40 | 
41 | BOOL WINAPI DllMain(HINSTANCE module, DWORD reason, LPVOID reserved) {
42 |   (void)(reserved);
43 |   (void)(module);
44 |   if (reason==DLL_PROCESS_ATTACH) {
45 |     printf("override-dep: dll attach\n");
46 |   }
47 |   else if (reason==DLL_PROCESS_DETACH) {
48 |     printf("override-dep: dll detach\n");
49 |   }  
50 |   return TRUE;
51 | }
52 | 


--------------------------------------------------------------------------------
/test/main-override-dep.h:
--------------------------------------------------------------------------------
 1 | #pragma once
 2 | // Issue #981: test overriding allocation in a DLL that is compiled independent of mimalloc. 
 3 | // This is imported by the `mimalloc-test-override` project.
 4 | 
 5 | #include <string>
 6 | 
 7 | class TestAllocInDll
 8 | {
 9 | public:
10 | 	__declspec(dllexport) std::string GetString();
11 | };
12 | 


--------------------------------------------------------------------------------
/test/main-override.c:
--------------------------------------------------------------------------------
 1 | #include <stdlib.h>
 2 | #include <stdio.h>
 3 | #include <assert.h>
 4 | #include <string.h>
 5 | 
 6 | #include <mimalloc-override.h>
 7 | 
 8 | int main() {
 9 |   mi_version();       // ensure mimalloc library is linked
10 |   void* p1 = malloc(78);
11 |   void* p2 = malloc(24);
12 |   free(p1);
13 |   p1 = malloc(8);
14 |   //char* s = strdup("hello\n");
15 |   free(p2);
16 |   p2 = malloc(16);
17 |   p1 = realloc(p1, 32);
18 |   free(p1);
19 |   free(p2);
20 |   //free(s);
21 |   //mi_collect(true);
22 | 
23 |   /* now test if override worked by allocating/freeing across the api's*/
24 |   //p1 = mi_malloc(32);
25 |   //free(p1);
26 |   //p2 = malloc(32);
27 |   //mi_free(p2);
28 |   p1 = malloc(24);
29 |   p2 = reallocarray(p1, 16, 16);
30 |   free(p2);
31 |   p1 = malloc(24);
32 |   assert(reallocarr(&p1, 16, 16) == 0);
33 |   free(p1);
34 |   mi_stats_print(NULL);
35 |   return 0;
36 | }
37 | 


--------------------------------------------------------------------------------
/test/main.c:
--------------------------------------------------------------------------------
 1 | #include <stdio.h>
 2 | #include <assert.h>
 3 | #include <mimalloc.h>
 4 | 
 5 | void test_heap(void* p_out) {
 6 |   mi_heap_t* heap = mi_heap_new();
 7 |   void* p1 = mi_heap_malloc(heap,32);
 8 |   void* p2 = mi_heap_malloc(heap,48);
 9 |   mi_free(p_out);
10 |   mi_heap_destroy(heap);
11 |   //mi_heap_delete(heap); mi_free(p1); mi_free(p2);
12 | }
13 | 
14 | void test_large() {
15 |   const size_t N = 1000;
16 | 
17 |   for (size_t i = 0; i < N; ++i) {
18 |     size_t sz = 1ull << 21;
19 |     char* a = mi_mallocn_tp(char,sz);
20 |     for (size_t k = 0; k < sz; k++) { a[k] = 'x'; }
21 |     mi_free(a);
22 |   }
23 | }
24 | 
25 | int main() {
26 |   void* p1 = mi_malloc(16);
27 |   void* p2 = mi_malloc(1000000);
28 |   mi_free(p1);
29 |   mi_free(p2);
30 |   p1 = mi_malloc(16);
31 |   p2 = mi_malloc(16);
32 |   mi_free(p1);
33 |   mi_free(p2);
34 | 
35 |   test_heap(mi_malloc(32));
36 | 
37 |   p1 = mi_malloc_aligned(64, 16);
38 |   p2 = mi_malloc_aligned(160,24);
39 |   mi_free(p2);
40 |   mi_free(p1);
41 |   //test_large();
42 | 
43 |   mi_collect(true);
44 |   mi_stats_print(NULL);
45 |   return 0;
46 | }
47 | 


--------------------------------------------------------------------------------
/test/readme.md:
--------------------------------------------------------------------------------
 1 | Testing allocators is difficult as bugs may only surface after particular
 2 | allocation patterns. The main approach to testing _mimalloc_ is therefore
 3 | to have extensive internal invariant checking (see `page_is_valid` in `page.c`
 4 | for example), which is enabled in debug mode with `-DMI_DEBUG_FULL=ON`.
 5 | The main testing strategy is then to run [`mimalloc-bench`][bench] using full
 6 | invariant checking to catch any potential problems over a wide range of intensive
 7 | allocation benchmarks and programs.
 8 | 
 9 | However, this does not test well for the entire API surface and this is tested
10 | with `test-api.c` when using `make test` (from `out/debug` etc). (This is
11 | not complete yet, please add to it.)
12 | 
13 | The `main.c` and `main-override.c` are there to test if building and overriding
14 | from a local install works and therefore these build a separate `test/CMakeLists.txt`.
15 | 
16 | [bench]: https://github.com/daanx/mimalloc-bench
17 | 


--------------------------------------------------------------------------------
/test/test-wrong.c:
--------------------------------------------------------------------------------
 1 | /* ----------------------------------------------------------------------------
 2 | Copyright (c) 2018-2020, Microsoft Research, Daan Leijen
 3 | This is free software; you can redistribute it and/or modify it under the
 4 | terms of the MIT license. A copy of the license can be found in the file
 5 | "LICENSE" at the root of this distribution.
 6 | -----------------------------------------------------------------------------*/
 7 | 
 8 | /* test file for valgrind/asan support.
 9 | 
10 |    VALGRIND:
11 |    ----------
12 |    Compile in an "out/debug" folder:
13 | 
14 |    > cd out/debug
15 |    > cmake ../.. -DMI_TRACK_VALGRIND=1
16 |    > make -j8
17 | 
18 |    and then compile this file as:
19 | 
20 |    > gcc -g -o test-wrong -I../../include ../../test/test-wrong.c libmimalloc-valgrind-debug.a -lpthread
21 | 
22 |    and test as:
23 | 
24 |    > valgrind ./test-wrong
25 | 
26 |    
27 |    ASAN
28 |    ----------
29 |    Compile in an "out/debug" folder:
30 | 
31 |    > cd out/debug
32 |    > cmake ../.. -DMI_TRACK_ASAN=1
33 |    > make -j8
34 | 
35 |    and then compile this file as:
36 | 
37 |    > clang -g -o test-wrong -I../../include ../../test/test-wrong.c libmimalloc-asan-debug.a -lpthread -fsanitize=address -fsanitize-recover=address
38 | 
39 |    and test as:
40 | 
41 |    > ASAN_OPTIONS=verbosity=1:halt_on_error=0 ./test-wrong
42 | 
43 | 
44 | */
45 | #include <stdio.h>
46 | #include <stdlib.h>
47 | #include "mimalloc.h"
48 | 
49 | #ifdef USE_STD_MALLOC
50 | # define mi(x) x
51 | #else
52 | # define mi(x) mi_##x
53 | #endif
54 | 
55 | int main(int argc, char** argv) {
56 |   int* p = (int*)mi(malloc)(3*sizeof(int));
57 | 
58 |   int* r = (int*)mi_malloc_aligned(8,16);
59 |   mi_free(r);
60 | 
61 |   // illegal byte wise read
62 |   char* c = (char*)mi(malloc)(3);
63 |   printf("invalid byte: over: %d, under: %d\n", c[4], c[-1]);
64 |   mi(free)(c);
65 | 
66 |   // undefined access
67 |   int* q = (int*)mi(malloc)(sizeof(int));
68 |   printf("undefined: %d\n", *q);
69 | 
70 |   // illegal int read
71 |   printf("invalid: over: %d, under: %d\n", q[1], q[-1]);
72 | 
73 |   *q = 42;
74 | 
75 |   // buffer overflow
76 |   q[1] = 43;
77 | 
78 |   // buffer underflow
79 |   q[-1] = 44;
80 | 
81 |   mi(free)(q);
82 | 
83 |   // double free
84 |   mi(free)(q);
85 | 
86 |   // use after free
87 |   printf("use-after-free: %d\n", *q);
88 | 
89 |   // leak p
90 |   // mi_free(p)
91 |   return 0;
92 | }


--------------------------------------------------------------------------------
/test/testhelper.h:
--------------------------------------------------------------------------------
 1 | /* ----------------------------------------------------------------------------
 2 | Copyright (c) 2018-2020, Microsoft Research, Daan Leijen
 3 | This is free software; you can redistribute it and/or modify it under the
 4 | terms of the MIT license. A copy of the license can be found in the file
 5 | "LICENSE" at the root of this distribution.
 6 | -----------------------------------------------------------------------------*/
 7 | #ifndef TESTHELPER_H_
 8 | #define TESTHELPER_H_
 9 | 
10 | #include <stdbool.h>
11 | #include <stdio.h>
12 | #include <errno.h>
13 | 
14 | // ---------------------------------------------------------------------------
15 | // Test macros: CHECK(name,predicate) and CHECK_BODY(name,body)
16 | // ---------------------------------------------------------------------------
17 | static int ok = 0;
18 | static int failed = 0;
19 | 
20 | static bool check_result(bool result, const char* testname, const char* fname, long lineno) {
21 |   if (!(result)) {
22 |     failed++;
23 |     fprintf(stderr,"\n  FAILED: %s: %s:%ld\n", testname, fname, lineno);
24 |     /* exit(1); */
25 |   }
26 |   else {
27 |     ok++;
28 |     fprintf(stderr, "ok.\n");
29 |   }
30 |   return true;
31 | }
32 | 
33 | #define CHECK_BODY(name) \
34 |   fprintf(stderr,"test: %s...  ", name ); \
35 |   errno = 0; \
36 |   for(bool done = false, result = true; !done; done = check_result(result,name,__FILE__,__LINE__))
37 | 
38 | #define CHECK(name,expr)      CHECK_BODY(name){ result = (expr); }
39 | 
40 | // Print summary of test. Return value can be directly use as a return value for main().
41 | static inline int print_test_summary(void)
42 | {
43 |   fprintf(stderr,"\n\n---------------------------------------------\n"
44 |                  "succeeded: %i\n"
45 |                  "failed   : %i\n\n", ok, failed);
46 |   return failed;
47 | }
48 | 
49 | #endif // TESTHELPER_H_
50 | 


--------------------------------------------------------------------------------