summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorJason Evans <je@fb.com>2014-01-08 00:47:56 (GMT)
committerJason Evans <je@fb.com>2014-01-08 00:54:17 (GMT)
commit6b694c4d47278cddfaaedeb7ee49fa5757e35ed5 (patch)
treeaf5722f43f512489a10ed7cacb4f9de890ee0cfc /include
parente18c25d23de0e845f0ee7e11d02c1be044738a3c (diff)
downloadjemalloc-6b694c4d47278cddfaaedeb7ee49fa5757e35ed5.zip
jemalloc-6b694c4d47278cddfaaedeb7ee49fa5757e35ed5.tar.gz
jemalloc-6b694c4d47278cddfaaedeb7ee49fa5757e35ed5.tar.bz2
Add junk/zero filling unit tests, and fix discovered bugs.
Fix growing large reallocation to junk fill new space. Fix huge deallocation to junk fill when munmap is disabled.
Diffstat (limited to 'include')
-rw-r--r--include/jemalloc/internal/arena.h15
-rw-r--r--include/jemalloc/internal/huge.h4
-rw-r--r--include/jemalloc/internal/private_symbols.txt3
3 files changed, 20 insertions, 2 deletions
diff --git a/include/jemalloc/internal/arena.h b/include/jemalloc/internal/arena.h
index 4151751..f092155 100644
--- a/include/jemalloc/internal/arena.h
+++ b/include/jemalloc/internal/arena.h
@@ -408,9 +408,12 @@ void arena_alloc_junk_small(void *ptr, arena_bin_info_t *bin_info,
#ifdef JEMALLOC_JET
typedef void (arena_redzone_corruption_t)(void *, size_t, bool, size_t,
uint8_t);
-extern arena_redzone_corruption_t *arena_redzone_corruption_fptr;
-#endif
+extern arena_redzone_corruption_t *arena_redzone_corruption;
+typedef void (arena_dalloc_junk_small_t)(void *, arena_bin_info_t *);
+extern arena_dalloc_junk_small_t *arena_dalloc_junk_small;
+#else
void arena_dalloc_junk_small(void *ptr, arena_bin_info_t *bin_info);
+#endif
void arena_quarantine_junk_small(void *ptr, size_t usize);
void *arena_malloc_small(arena_t *arena, size_t size, bool zero);
void *arena_malloc_large(arena_t *arena, size_t size, bool zero);
@@ -422,9 +425,17 @@ void arena_dalloc_bin(arena_t *arena, arena_chunk_t *chunk, void *ptr,
size_t pageind, arena_chunk_map_t *mapelm);
void arena_dalloc_small(arena_t *arena, arena_chunk_t *chunk, void *ptr,
size_t pageind);
+#ifdef JEMALLOC_JET
+typedef void (arena_dalloc_junk_large_t)(void *, size_t);
+extern arena_dalloc_junk_large_t *arena_dalloc_junk_large;
+#endif
void arena_dalloc_large_locked(arena_t *arena, arena_chunk_t *chunk,
void *ptr);
void arena_dalloc_large(arena_t *arena, arena_chunk_t *chunk, void *ptr);
+#ifdef JEMALLOC_JET
+typedef void (arena_ralloc_junk_large_t)(void *, size_t, size_t);
+extern arena_ralloc_junk_large_t *arena_ralloc_junk_large;
+#endif
void *arena_ralloc_no_move(void *ptr, size_t oldsize, size_t size,
size_t extra, bool zero);
void *arena_ralloc(arena_t *arena, void *ptr, size_t oldsize, size_t size,
diff --git a/include/jemalloc/internal/huge.h b/include/jemalloc/internal/huge.h
index d987d37..dac23c6 100644
--- a/include/jemalloc/internal/huge.h
+++ b/include/jemalloc/internal/huge.h
@@ -23,6 +23,10 @@ void *huge_ralloc_no_move(void *ptr, size_t oldsize, size_t size,
size_t extra);
void *huge_ralloc(void *ptr, size_t oldsize, size_t size, size_t extra,
size_t alignment, bool zero, bool try_tcache_dalloc);
+#ifdef JEMALLOC_JET
+typedef void (huge_dalloc_junk_t)(void *, size_t);
+extern huge_dalloc_junk_t *huge_dalloc_junk;
+#endif
void huge_dalloc(void *ptr, bool unmap);
size_t huge_salloc(const void *ptr);
prof_ctx_t *huge_prof_ctx_get(const void *ptr);
diff --git a/include/jemalloc/internal/private_symbols.txt b/include/jemalloc/internal/private_symbols.txt
index 0ad600b..10ac549 100644
--- a/include/jemalloc/internal/private_symbols.txt
+++ b/include/jemalloc/internal/private_symbols.txt
@@ -8,6 +8,7 @@ arena_boot
arena_dalloc
arena_dalloc_bin
arena_dalloc_bin_locked
+arena_dalloc_junk_large
arena_dalloc_junk_small
arena_dalloc_large
arena_dalloc_large_locked
@@ -52,6 +53,7 @@ arena_ptr_small_binind_get
arena_purge_all
arena_quarantine_junk_small
arena_ralloc
+arena_ralloc_junk_large
arena_ralloc_no_move
arena_redzone_corruption
arena_run_regind
@@ -194,6 +196,7 @@ hash_x86_32
huge_allocated
huge_boot
huge_dalloc
+huge_dalloc_junk
huge_malloc
huge_mtx
huge_ndalloc