Deleted Added
full compact
chunk_mmap.c (235238) chunk_mmap.c (242844)
1#define JEMALLOC_CHUNK_MMAP_C_
2#include "jemalloc/internal/jemalloc_internal.h"
3
4/******************************************************************************/
5/* Function prototypes for non-inline static functions. */
6
7static void *pages_map(void *addr, size_t size);
8static void pages_unmap(void *addr, size_t size);

--- 99 unchanged lines hidden (view full) ---

108 pages_unmap(addr, leadsize);
109 if (trailsize != 0)
110 pages_unmap((void *)((uintptr_t)ret + size), trailsize);
111 return (ret);
112 }
113#endif
114}
115
1#define JEMALLOC_CHUNK_MMAP_C_
2#include "jemalloc/internal/jemalloc_internal.h"
3
4/******************************************************************************/
5/* Function prototypes for non-inline static functions. */
6
7static void *pages_map(void *addr, size_t size);
8static void pages_unmap(void *addr, size_t size);

--- 99 unchanged lines hidden (view full) ---

108 pages_unmap(addr, leadsize);
109 if (trailsize != 0)
110 pages_unmap((void *)((uintptr_t)ret + size), trailsize);
111 return (ret);
112 }
113#endif
114}
115
116void
116bool
117pages_purge(void *addr, size_t length)
118{
117pages_purge(void *addr, size_t length)
118{
119 bool unzeroed;
119
120#ifdef _WIN32
121 VirtualAlloc(addr, length, MEM_RESET, PAGE_READWRITE);
120
121#ifdef _WIN32
122 VirtualAlloc(addr, length, MEM_RESET, PAGE_READWRITE);
123 unzeroed = true;
122#else
123# ifdef JEMALLOC_PURGE_MADVISE_DONTNEED
124# define JEMALLOC_MADV_PURGE MADV_DONTNEED
124#else
125# ifdef JEMALLOC_PURGE_MADVISE_DONTNEED
126# define JEMALLOC_MADV_PURGE MADV_DONTNEED
127# define JEMALLOC_MADV_ZEROS true
125# elif defined(JEMALLOC_PURGE_MADVISE_FREE)
126# define JEMALLOC_MADV_PURGE MADV_FREE
128# elif defined(JEMALLOC_PURGE_MADVISE_FREE)
129# define JEMALLOC_MADV_PURGE MADV_FREE
130# define JEMALLOC_MADV_ZEROS false
127# else
128# error "No method defined for purging unused dirty pages."
129# endif
131# else
132# error "No method defined for purging unused dirty pages."
133# endif
130 madvise(addr, length, JEMALLOC_MADV_PURGE);
134 int err = madvise(addr, length, JEMALLOC_MADV_PURGE);
135 unzeroed = (JEMALLOC_MADV_ZEROS == false || err != 0);
136# undef JEMALLOC_MADV_PURGE
137# undef JEMALLOC_MADV_ZEROS
131#endif
138#endif
139 return (unzeroed);
132}
133
134static void *
135chunk_alloc_mmap_slow(size_t size, size_t alignment, bool *zero)
136{
137 void *ret, *pages;
138 size_t alloc_size, leadsize;
139

--- 63 unchanged lines hidden ---
140}
141
142static void *
143chunk_alloc_mmap_slow(size_t size, size_t alignment, bool *zero)
144{
145 void *ret, *pages;
146 size_t alloc_size, leadsize;
147

--- 63 unchanged lines hidden ---