242 Commits

Author SHA1 Message Date
daan
3957b2fd28 add mi_new_realloc(n) to support C++ style reallocation that raises std::bad_alloc on out-of-memory 2020-01-20 15:41:56 -08:00
daan
146899af8a add missing members to stl allocator (#193) 2020-01-20 15:27:05 -08:00
daan
a33ebb8625 add alloc_align attribute to aligned allocation functions 2020-01-19 22:14:35 -08:00
daan
514b315283 add max_size member to STL allocator 2020-01-19 21:27:46 -08:00
daan
9d7ac76d93 fix compilation under Intel C compiler (icc) 2020-01-19 18:35:45 -08:00
daan
dc58388968 Add ability to register custom error function called on various error conditions; including ENOMEM 2020-01-17 19:59:55 -08:00
daan
3e982a3813 fix STL deallocate passing count (instead of size) to mi_free_size 2020-01-17 15:58:43 -08:00
daan
6dd636d82d improve STL allocator using mi_new_n and removing unused parameter names; follow up from pr #193 and #188 2020-01-17 15:41:52 -08:00
daan
6b7356a10a make mimalloc compile with the highest warning level on msvc 2020-01-16 18:12:01 -08:00
daan
a0bee081dd use proper C++11 check for noexcept attribute 2020-01-16 15:58:48 -08:00
daan
7a9502973d rearrange STL allocator code: remove pragma, ifdef for C++11 2020-01-16 15:57:11 -08:00
Daan
97bd204c42
Merge branch 'dev' into kile/stl 2020-01-16 15:33:13 -08:00
Kirsten Lee
526bee6843 merge stl and main header 2020-01-16 15:17:15 -08:00
Kirsten Lee
1b2b7404f7 flip the order of includes for ease of use 2020-01-16 14:54:13 -08:00
daan
24f8bcbc8f add explicit calling convention to registered functions 2020-01-16 14:25:09 -08:00
daan
8d8f355ed0 add option to reset eagerly when a segment is abandoned 2020-01-16 11:25:02 -08:00
daan
7a1e86fc20 merge from dev 2020-01-15 18:03:37 -08:00
daan
0099707af9 use delayed free for all pages; reduce size of the page structure for improved address calculation 2020-01-15 17:19:01 -08:00
daan
202246425b bump version to 1.4 for further development 2020-01-15 12:16:53 -08:00
daan
c9b5ac80b3 update page reset queue to just do delayed page resets 2020-01-15 12:00:44 -08:00
daan
783e3377f7 add output argument to stat printing 2020-01-15 10:53:54 -08:00
daan
0956a05bf6 add argument pointer to the register deferred free callback 2020-01-15 10:21:32 -08:00
daan
f92a2a7264 add argument pointer to the register output routine 2020-01-15 10:18:32 -08:00
daan
941c55ee42 wip: first implementation of page free list on segments for effecient delayed page reset 2020-01-14 21:47:18 -08:00
daan
12ef2816ed fix bug exposed by commit 59fa286 where reclaimed pages could be stuck to NEVER_DELAYED 2020-01-08 19:00:03 -08:00
daan
683d8998d4 fix potential A-B-A problem with segment abandonment; noticed by Manual Poeter and Sam Gross 2020-01-08 17:45:38 -08:00
Kirsten Lee
743e891738 add stl mimalloc wrapper 2020-01-06 16:18:22 -08:00
daan
2b108c8748 increase retire expiration to 4 2020-01-03 21:39:18 -08:00
daan
eeb623e6af increase retire limit, collect retired pages 2020-01-03 17:06:41 -08:00
daan
f9ca88f71c set secure default to 0 again 2020-01-02 17:57:41 -08:00
daan
fc3e537bd4 improve double free detection with faster same page check 2019-12-28 15:28:13 -08:00
daan
77134e1ad0 update free list encoding to stronger formula with addition last 2019-12-28 15:17:49 -08:00
daan
e3391d9a53 stronger encoding of free lists using two keys per page 2019-12-28 00:57:42 -08:00
daan
ba87a39d9f updated random cookie generation using OS primitives and chacha20 2019-12-22 19:37:49 -08:00
daan
a799a19136 fix non-standard line continuation 2019-11-25 14:30:12 -08:00
Daan
fe51d11e61
Merge pull request #178 from carenas/master
avoid deadlock with BSD systems that call malloc from the dynamic linker
2019-11-25 14:28:58 -08:00
daan
1d998af854 clean up options; make secure work with eager_page_commit 2019-11-25 10:47:17 -08:00
daan
c6df7a199c experimental eager page commit option 2019-11-24 22:02:40 -08:00
Carlo Marcelo Arenas Belón
41ef691292 avoid deadlock with BSD systems that call malloc from the dynamic linker
extend the exception used for macOS to cover also OpenBSD (tested in 6.4+)
and DragonFlyBSD (tested in 5.6.2)
2019-11-24 10:00:39 -08:00
daan
24b768363e bump version to 1.3 for further development 2019-11-22 09:28:48 -08:00
daan
50575b12c0 Merge branch 'dev' into dev-exp 2019-11-21 16:29:59 -08:00
daan
41caf6d0f8 set secure default to 0 2019-11-21 16:29:46 -08:00
daan
6568059cc6 merge from dev 2019-11-21 16:28:28 -08:00
daan
d55ab50a84 update version to 1.2 2019-11-21 16:10:04 -08:00
daan
74dbfc30be improved security by encoding NULL values; double free mitigation on by default; more precise free list corruption detection 2019-11-21 15:21:23 -08:00
Daan Leijen
211f1aa519 remove reset delay slots; add reset tracking per page and segment 2019-11-20 14:55:12 -08:00
Daan Leijen
30e2c54adb remove delayed reset option (for now) 2019-11-20 14:13:02 -08:00
daan
17ade3fca5 merge from dev 2019-11-13 17:52:20 -08:00
daan
314dcd59c2 Merge branch 'dev' of https://github.com/microsoft/mimalloc into dev 2019-11-13 17:23:54 -08:00
daan
a4ed63d127 Adresses pr #165 and issue #164 by @colesbury:
On Mac OS, the thread-local _mi_default_heap may get reset before
_mi_thread_done is called, leaking the default heap on non-main threads.

Now the current default heap is also stored in mi_pthread_key (or mi_fls_key
on Windows). The _mi_thread_done function is called with this value.
2019-11-13 17:22:03 -08:00