daan
5a6d9ba807
fix handling of failing to allocate heap metadata on thread creation, issue #257
2020-06-17 19:07:32 -07:00
daan
32b3608581
simplify initial main tld declaration
2020-06-17 13:12:05 -07:00
Wanja Vogel
d5475a58a1
fix: avoid warning
...
warning C26451: Arithmetic overflow: Using operator '+' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '+' to avoid overflow (io.2).
2020-06-10 07:47:50 +02:00
daan
66048cb6cc
fix return value for page_unreset
2020-05-19 13:31:24 -07:00
daan
6f73cc8b1d
Merge branch 'master' into dev
2020-05-19 10:41:08 -07:00
daan
a09a64e29b
add extra check in mi_page_unreset to not unreset for huge OS pages
2020-05-19 10:40:46 -07:00
Daan
0ed478089e
Merge pull request #242 from devnexen/ios_build_fix
...
IOS build fix, large pages unsupported.
2020-05-19 10:21:32 -07:00
daan
a7d2bc8ad6
edit warning messages to be more consistent
2020-05-19 10:16:28 -07:00
daan
74986c1dd1
weaken aligmenment assertion (issue #245 )
2020-05-19 09:56:37 -07:00
daan
a52b38342d
Merge branch 'dev' of https://github.com/microsoft/mimalloc into dev
2020-05-19 09:55:08 -07:00
Daan Leijen
c9ffe30513
weaken alignment requirement to not need to be a multiple of sizeof(void*); see #246
2020-05-18 10:17:58 -07:00
Daan Leijen
bf6b781e40
fix semicolon ( #247 )
2020-05-18 10:08:18 -07:00
David Carlier
0ea4e3f279
IOS build fix, large pages unsupported.
2020-05-07 20:09:16 +01:00
daan
967513d536
add extra checks if unreset (commit) succeeds
2020-05-06 11:35:35 -07:00
daan
4f020e5da4
put a bound on the environment search
2020-05-05 20:19:20 -07:00
daan
45974efdb7
use environ on posix systems to read environment variables before the C runtime is initialized (issue #241 )
2020-05-05 19:37:50 -07:00
daan
29cb8f369a
slight cleanup of f10ba4fa
, #239
2020-05-05 10:24:16 -07:00
Daan
f10ba4fa44
Merge pull request #239 from asl/oom-collect
...
In OOM case try to force collect memory and retry the allocation
2020-05-05 10:16:28 -07:00
daan
a278db940b
improve thread-id check for thread local FLS callbacks on Windows with static linking
2020-05-05 10:10:46 -07:00
daan
7c24edfeb0
add thread-id check for thread local FLS callbacks on Windows with static linking; found by @jasongibson
2020-05-04 14:31:32 -07:00
daan
9c0da9776d
fix assertion for huge block size
2020-05-03 11:43:57 -07:00
daan
097c007ba3
reduce page retire cycles based on object size
2020-05-02 00:19:20 -07:00
Daan
81bd1b70b0
Merge pull request #238 from asl/gcc-6-aligned-dealloc
...
Fix override condition for sized dealloc with gcc 6
2020-05-01 14:16:20 -07:00
daan
5cfdc39ff1
remove on-demand page commit option
2020-04-30 18:23:33 -07:00
daan
0af9dd6fd2
fix initialization of union padding; issue found through valgrind by @jasongibson
2020-04-30 17:40:00 -07:00
Anton Korobeynikov
fdd1cd821a
In OOM case try to force collect memory and retry the allocation.
2020-04-29 02:10:11 +03:00
daan
9a33f23b5f
fix MI_SHOW_ERRORS on msvc
2020-04-28 11:11:23 -07:00
daan
8f5710abcc
Merge branch 'master' into dev
2020-04-28 11:07:55 -07:00
Daan
07e80aebb7
Merge branch 'dev' into xmalloc
2020-04-28 10:53:34 -07:00
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