Commit Graph

167 Commits

Author SHA1 Message Date
daan b052d3b731 enable double free and heap corruption detection in debug mode 2019-10-28 15:54:33 -07:00
daan 081e2d1eb6 fix statistics display 2019-10-28 13:43:42 -07:00
daan 25246070ae fix double free check in secure = 4 mode; inline _mi_ptr_cookie 2019-10-19 08:34:18 -07:00
daan 2affdbbd2e stronger secure mode when defining MI_SECURE=4: checks for double free, corrupted free list, and invalid pointer frees. Performance is impacted but not too much -- more perf testing is needed 2019-10-18 18:11:04 -07:00
daan fdfa6ed260 fix warnings at high warning level in msvc 2019-10-17 16:56:57 -07:00
daan 5de851a84d update page_flags to have more portable definition 2019-10-17 16:48:16 -07:00
daan 26c27fbf58 use uint8_t bit fields, and improve portability of page_flags type 2019-10-17 12:07:26 -07:00
Johannes Schindelin 559688ec64 Suppress warning about unnamed struct
This prevents MSVC complaining with

	warning C4201: nonstandard extension used: nameless struct/union

The struct might seem unnecessary to the occasional reader (it did seem
so to this commit's author), but it is not! It is required to align the
fields to a boundary, which is verified by the test suite. Removing that
"unnecessary" `struct` results in this failure:

1: Test command: mimalloc-test-api
[...]
1: test: malloc-zero...  mimalloc: assertion failed: at src/page.c:591, mi_page_init
1:   assertion: "!mi_page_has_aligned(page)"

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2019-10-17 20:43:18 +02:00
Johannes Schindelin e747a6f3a6 Use unsigned for bit-field variables
It is actually non-standard to use `bool` with a bit-field quantifier,
and VS 2019 complains about this.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2019-10-17 20:43:18 +02:00
daan f3a162f095 pick better umul_overflow variant based on size_t size 2019-10-17 09:52:10 -07:00
daan 4609537b8a pick better umul_overflow variant based on intptr size 2019-10-17 09:47:12 -07:00
Daan Leijen 114d05cd76 bump to version 1.1 2019-10-07 09:54:23 -07:00
daan 60efb62155 make secure a build option only 2019-09-17 17:31:42 -07:00
daan 33f4ec4ac6 put new-delete overrides in separate header file 2019-09-15 19:19:00 -07:00
daan 6896408ab1 fix definition of mi_recalloc_tp 2019-09-11 20:49:18 -07:00
daan 24777f6a91 limit aligned allocation to power-of-two alignment 2019-09-11 17:49:28 -07:00
Daan Leijen 1909cfb346 refine mi_os_good_alloc_size and use it for huge pages (to ensure realloc is bounded as in #153 2019-09-10 13:26:51 -07:00
daan ce81af1119 use mi_is_power_of_two when possible (pr #118) 2019-09-09 08:12:50 -07:00
daan 23155c5d71 add recursion guard to deferred callback 2019-09-09 08:02:41 -07:00
daan 3bbc047ba6 reserve huge pages returns actual number of pages reserved 2019-09-04 12:26:02 -07:00
daan 6c43ae2bde add later thread-done invokation; add mi_is_redirected call 2019-09-04 12:00:41 -07:00
daan a6a956c589 add back zero initialized re-allocation 2019-09-03 10:57:39 -07:00
daan 7a91368108 pass page to block_zero_init and extend to block_size 2019-09-03 10:11:24 -07:00
daan d1bd1644d5 support zero-initialized memory detection 2019-09-02 13:16:52 -07:00
daan d6e35ffd83 Merge branch 'dev' into dev-exp 2019-09-02 10:10:08 -07:00