657 Commits

Author SHA1 Message Date
Daan
9ba16f2df9
Merge pull request #232 from asl/cmake-err-warn-default
Add cmake option to specify whether warnings / errors are enabled by default
2020-04-28 10:51:30 -07:00
Anton Korobeynikov
0b440d9543 Apparently gcc 6 defines __cpp_aligned_new in C++14 mode, however no std::align_val_t is available there
for obvious reasons
2020-04-28 19:09:54 +03:00
Anton Korobeynikov
079b886feb Add cmake option to specify whether warnings / errors are enabled by default.
Currently warnings / errors are enabled by default in debug build.
Otherwise they could be enabled only via environmental variable or
API option call. Add possibility to specify the default during the
build time. This simplifies e.g. integration of the library into
bigger projects as no source changes would be required.
2020-04-28 16:44:44 +03:00
Anton Korobeynikov
2f1fc1df5c Add xmalloc()-like functionality.
xmalloc is a non-standard extension forcing malloc() to
abort should the memory allocation failed instead of returning a
null pointer. Such functionality is quite useful as it provides one
single point of error handling if the caller of malloc() does not
check the result (as it often does!) and segfault is ocurring somewhere
else. If more fine-grained control is necessary one could register a custom
error handler, however, this might not be an option while interposing.
2020-04-28 16:38:47 +03:00
Nicolas
f40aaad876
Fix typo in comment
Usuelly->Usually
2020-04-24 23:20:28 -03:00
Daan Leijen
798cd6647d use line-buffered output for statistics (issue #235 2020-04-24 07:43:21 -07:00
daan
a5bf45cd1e add commit check on page reclaim 2020-04-23 21:01:06 -07:00
daan
74a01d05af check commit/protect if eager_commit is disabled 2020-04-23 20:48:55 -07:00
daan
7123efb397 pass full commit flag to free, possible fix for issue #218 2020-04-23 20:19:48 -07:00
daan
0d3c141243 add check for if commit fails in segment allocation 2020-04-23 17:28:44 -07:00
Anton Korobeynikov
fe976caaea Provide zone_size function: free() uses it to find the zone pointer belongs to in order to call the corresponding zone_free function 2020-04-21 15:10:49 +03:00
Anton Korobeynikov
07d72f4fba Do not forget to include malloc zone implementation in the static object 2020-04-21 15:08:27 +03:00
Anton Korobeynikov
4a0c53ba5a Fix the prototype of malloc_size. Otherwise we'll end with invalid
redeclaration if malloc/malloc.h is pulled on Darwin
2020-04-21 15:07:32 +03:00
daan
e31298bdc3 fix compiler warning in secure mode 2020-04-20 18:04:09 -07:00
daan
093db6af24 possible fix for memory instability on Win7 (#230) 2020-04-20 09:33:19 -07:00
daan
77acf5a868 more careful overriding of aligned_alloc for compilation on Conda (#219) 2020-04-20 09:27:43 -07:00
daan
211038c4e5 (possible) fix for overriding of aligned_alloc on systems that define it as static inline. issue #219 2020-04-15 11:55:54 -07:00
Daan
ea558cadba
Merge pull request #227 from devnexen/android_build_fix
Android build fix proposal.
2020-04-15 11:23:04 -07:00
daan
1116c0df2e fix strnlen do not search beyond n characters, issue #228 2020-04-14 17:42:30 -07:00
David Carlier
6c5039bad1 Android build fix proposal.
malloc_usable_size has different signature on this platform.
thread and real time apis are part of bionic.
2020-04-14 14:20:56 +01:00
daan
69a0846478 add MI_PADDING flag to cmake to supress use of padding in debug mode 2020-04-07 10:01:18 -07:00
daan
afc4f79a69 fix for ensuring heap initialization with static linking on windows on huge allocations (issues #221) 2020-04-06 12:15:12 -07:00
daan
84b9b8878e possible fix for issue #221 2020-04-06 11:49:32 -07:00
daan
34d3b8c47f add version check for mingw compilation and add FlsAlloc definitions if required 2020-04-06 11:25:25 -07:00
daan
0a3e5bb699 further fixes to compile on mingw without warnings (issue #217) 2020-04-06 10:56:53 -07:00
daan
0f3bd05fd5 fix mingw compilation for numa awareness (issue #217) 2020-04-06 10:03:30 -07:00
Daan
64e8cfa942
Merge pull request #216 from devnexen/dev_32bits_warning_fixes
32 bits build fix proposal.
2020-04-06 08:09:06 -07:00
Daan
1ece3ff6aa
Merge pull request #220 from cormacrelf/usable_size
Don't call mi_page_usable_size_of with an aligned pointer
2020-04-06 08:05:34 -07:00
Cormac Relf
0047b271f7 Call mi_page_usable_size_of with unaligned block rather than start of aligned memory 2020-04-06 22:50:21 +10:00
David Carlier
c0b06949cb 32 bits build fix proposal. 2020-03-20 17:38:14 +00:00
daan
7745dde8d2 allow retirement for all object sizes (issue #212) 2020-03-16 15:31:37 -07:00
daan
72f758c433 fix issue #210 where multiple static instances of mimalloc in DLL's compete for the same virtual memory area 2020-03-06 16:43:39 -08:00
daan
5bc276c23b fix issue #208: dynamic unloading of DLL with statically linked mimalloc 2020-03-06 16:24:51 -08:00
daan
ab202fbe73 never free the main heap structures; issues #207 2020-03-06 15:53:07 -08:00
daan
ec61224db0 fix padding issue with zero sized allocation (issue #209) 2020-02-18 20:05:30 -08:00
daan
baf08e8d54 fix size check on overflow when padding is enabled in debug mode 2020-02-17 09:59:34 -08:00
daan
f2ac272baa strengthen alignment check for memalign and aligned_alloc 2020-02-17 09:59:11 -08:00
daan
16ebb70e4c strengthen aligment guarantee (issue #206) (reverse commit 4531367) 2020-02-17 09:15:48 -08:00
daan
3e198cc87d fix too strict assertion (issue #204) 2020-02-14 11:11:57 -08:00
daan
e981e9227e ensure thread delayed freeing is correct during heap_absorb; #204 2020-02-13 13:12:19 -08:00
daan
af37302e83 add assertions 2020-02-13 12:27:06 -08:00
daan
8a2a52843d delete all thread owned heaps when a thread is terminated (issue #202) 2020-02-13 12:15:23 -08:00
daan
946a71c4a9 fix issue #204 (and #205) by doing thread delayed free after absorbing the pages 2020-02-13 11:37:48 -08:00
daan
f42b8526d0 fix wrong __declspec(restrict) and __attribute__((malloc)) attributes on reallocation functions 2020-02-13 10:36:39 -08:00
daan
9749c83ca0 fix build with debug and secure both enabled, issue #203 2020-02-13 09:16:41 -08:00
daan
afe434463a add comments on overriding in macOSX 2020-02-09 18:26:50 -08:00
daan
9062f39764 enable interpose separate from zones on macOS 2020-02-08 20:08:52 -08:00
daan
e676062103 update mac zone code 2020-02-05 17:40:13 -08:00
daan
d516c9f99c Merge branch 'dev-exp' into dev-exp-tls 2020-02-02 22:02:16 -08:00
daan
feb0699bcb fix aligment check when padding is enabled 2020-02-02 22:01:04 -08:00
daan
f3c47c7c91 improved malloc zone handling on macOSX (not working yet) 2020-02-02 21:03:09 -08:00
daan
757dcc8411 extend interpose for macOSX 2020-02-02 19:07:26 -08:00
daan
f0dc6e7e42 add extra alignment test 2020-02-02 16:21:06 -08:00
daan
ff75c32d27 Merge branch 'dev-exp' into dev-exp-tls 2020-02-02 15:54:51 -08:00
daan
7d3d37e4dd Merge branch 'dev' into dev-exp 2020-02-02 15:54:41 -08:00
daan
865965b8c0 fix warnings under clang-cl 2020-02-02 15:43:13 -08:00
daan
07fbe4f80f fixes for dragonfly 2020-02-02 14:31:28 -08:00
daan
8bc20631e4 fixes for freeBSD 2020-02-02 13:25:26 -08:00
daan
2e56bf55c4 Merge branch 'dev' into dev-exp-tls 2020-02-02 13:12:26 -08:00
daan
d2db9f1fc2 update thread local storage 2020-02-02 13:12:22 -08:00
daan
4a5f3592c0 fix build warning on FreeBSD 2020-02-02 09:25:39 -08:00
daan
bb64634e4e Merge branch 'dev-exp' into dev-exp-tls 2020-02-01 17:48:57 -08:00
daan
3f17ac287c add 'nodiscard' attribute to mimalloc interface 2020-02-01 17:29:30 -08:00
daan
0989562c2d add initial fast tls for macOSX 2020-02-01 16:57:00 -08:00
daan
10009490b8 Merge branch 'dev-exp' into dev-exp-tls 2020-02-01 14:30:34 -08:00
daan
60cfc623be fix zero initialization of blocks under 8 bytes when padding check is active 2020-02-01 14:29:12 -08:00
daan
a169cf0e3f merge dev-exp; add pthread TLS support for macOSX 2020-02-01 14:10:10 -08:00
daan
edff9d4fbb merge from dev-win (padding) 2020-02-01 12:32:59 -08:00
daan
aa68b8cbc7 improve encoding of padding canary and buffer overflow detection 2020-02-01 12:16:37 -08:00
daan
40f1e1e07b byte-precise heap block overflow checking with encoded padding 2020-01-31 23:39:51 -08:00
daan
68112a2751 better padding implementation, more precise statistics 2020-01-31 20:34:24 -08:00
daan
8422ab125d improve messages; fix reset size calculation on large pages 2020-01-31 17:28:26 -08:00
daan
724602b78b enable page-reset by default 2020-01-31 17:27:45 -08:00
daan
4531367de2 fix padding check for aligned allocation; improve perf for small aligned allocations 2020-01-31 13:20:02 -08:00
daan
f820fae858 merge from dev; add retired collect on abandon 2020-01-30 07:24:35 -08:00
daan
a7c69ccbea fix stat accounting of segments with huge blocks 2020-01-30 06:25:42 -08:00
daan
ed1c8a203a improve performance with tls recursion counter 2020-01-29 23:08:52 -08:00
daan
03b363a1c2 first working tls on macOS using interpose; still slow 2020-01-29 22:46:44 -08:00
daan
7ff3ec2bf7 use EFAULT for buffer overflow and call abort in debug mode (as well as secure mode) 2020-01-29 17:25:40 -08:00
daan
5d212d688f add MI_PADDING build option to add padding to each block to detect heap block overflows 2020-01-29 17:10:57 -08:00
daan
b3dae128de Merge branch 'dev' into dev-exp 2020-01-27 23:15:37 -08:00
daan
9c166d88f0 increase retire page size 2020-01-27 23:15:24 -08:00
daan
42586de104 fix is_zero setting in regions 2020-01-27 23:13:57 -08:00
daan
e628fc7067 cleanup reclaim logic 2020-01-26 12:39:11 -08:00
daan
d4927adddc add extra assertion that all segments are free on thread termination 2020-01-25 14:30:02 -08:00
daan
394b796ea0 fix over-eager page reset in segment reclamation 2020-01-25 13:43:56 -08:00
daan
4faf412f53 move 'memory.c' to 'region.c' 2020-01-25 13:28:49 -08:00
daan
7785139201 fix warning on gcc on attribute ignore in templates 2020-01-25 13:28:24 -08:00
daan
62b8fb26b1 fix freeing of segments on forced reclaim 2020-01-25 13:27:47 -08:00
daan
cb433d272a Merge branch 'dev' into dev-exp-abandon 2020-01-25 13:03:06 -08:00
daan
f4630d43a7 allow reset on large pages; check commit status before reset 2020-01-25 12:49:14 -08:00
daan
5e32d00aab add visit count to abandoned to limit list length 2020-01-25 12:26:08 -08:00
daan
3ec691cfb4 Merge branch 'dev' of https://github.com/microsoft/mimalloc into dev 2020-01-25 11:20:17 -08:00
David Carlier
2b667bd3ae enable arc4random abi under apple 2020-01-25 14:47:09 +00:00
daan
072ceb2efe Merge branch 'dev' into dev-exp-abandon 2020-01-24 20:20:55 -08:00
daan
ecece57284 fix bug in committed check in arena allocation 2020-01-24 20:20:43 -08:00
daan
47300eeda3 avoid memset 2020-01-24 20:17:33 -08:00
daan
b31bc52618 add cache alignment directives for contended variables 2020-01-24 19:02:13 -08:00
daan
e070eba112 fix tagged null encoding, search segment cache before reclaim 2020-01-24 16:31:18 -08:00
daan
9a400ecce9 Merge branch 'dev' into dev-exp-abandon 2020-01-24 15:48:34 -08:00