Skip to content
  1. Aug 26, 2015
  2. Aug 21, 2015
    • Christopher Ferris's avatar
      Fix arenas_cache_cleanup(). · 45e9f66c
      Christopher Ferris authored
      Fix arenas_cache_cleanup() to handle allocation/deallocation within the
      application's thread-specific data cleanup functions even after
      arenas_cache is torn down.
      45e9f66c
  3. Aug 20, 2015
  4. Aug 19, 2015
    • Jason Evans's avatar
      Don't bitshift by negative amounts. · 5ef33a9f
      Jason Evans authored
      Don't bitshift by negative amounts when encoding/decoding run sizes in
      chunk header maps.  This affected systems with page sizes greater than 8
      KiB.
      
      Reported by Ingvar Hagelund <ingvar@redpill-linpro.com>.
      5ef33a9f
  5. Aug 17, 2015
  6. Aug 14, 2015
  7. Aug 13, 2015
  8. Aug 12, 2015
  9. Aug 11, 2015
  10. Aug 07, 2015
  11. Aug 04, 2015
    • Daniel Micay's avatar
      work around _FORTIFY_SOURCE false positive · 67c46a9e
      Daniel Micay authored
      In builds with profiling disabled (default), the opt_prof_prefix array
      has a one byte length as a micro-optimization. This will cause the usage
      of write in the unused profiling code to be statically detected as a
      buffer overflow by Bionic's _FORTIFY_SOURCE implementation as it tries
      to detect read overflows in addition to write overflows.
      
      This works around the problem by informing the compiler that
      not_reached() means code in unreachable in release builds.
      67c46a9e
    • Matthijs's avatar
      MSVC compatibility changes · c1a6a51e
      Matthijs authored
      - Decorate public function with __declspec(allocator) and __declspec(restrict), just like MSVC 1900
      - Support JEMALLOC_HAS_RESTRICT by defining the restrict keyword
      - Move __declspec(nothrow) between 'void' and '*' so it compiles once more
      c1a6a51e
    • Jason Evans's avatar
      Generalize chunk management hooks. · b49a334a
      Jason Evans authored
      Add the "arena.<i>.chunk_hooks" mallctl, which replaces and expands on
      the "arena.<i>.chunk.{alloc,dalloc,purge}" mallctls.  The chunk hooks
      allow control over chunk allocation/deallocation, decommit/commit,
      purging, and splitting/merging, such that the application can rely on
      jemalloc's internal chunk caching and retaining functionality, yet
      implement a variety of chunk management mechanisms and policies.
      
      Merge the chunks_[sz]ad_{mmap,dss} red-black trees into
      chunks_[sz]ad_retained.  This slightly reduces how hard jemalloc tries
      to honor the dss precedence setting; prior to this change the precedence
      setting was also consulted when recycling chunks.
      
      Fix chunk purging.  Don't purge chunks in arena_purge_stashed(); instead
      deallocate them in arena_unstash_purged(), so that the dirty memory
      linkage remains valid until after the last time it is used.
      
      This resolves #176 and #201.
      b49a334a
  12. Jul 25, 2015
    • Jason Evans's avatar
      Implement support for non-coalescing maps on MinGW. · d059b9d6
      Jason Evans authored
      - Do not reallocate huge objects in place if the number of backing
        chunks would change.
      - Do not cache multi-chunk mappings.
      
      This resolves #213.
      d059b9d6
    • Jason Evans's avatar
      Fix huge_ralloc_no_move() to succeed more often. · 40cbd30d
      Jason Evans authored
      Fix huge_ralloc_no_move() to succeed if an allocation request results in
      the same usable size as the existing allocation, even if the request
      size is smaller than the usable size.  This bug did not cause
      correctness issues, but it could cause unnecessary moves during
      reallocation.
      40cbd30d
  13. Jul 24, 2015
  14. Jul 23, 2015
    • Jason Evans's avatar
      Force lazy_lock on MinGW. · 13473c7c
      Jason Evans authored
      This resolves #83.
      13473c7c
    • Jason Evans's avatar
      Fix MinGW-related portability issues. · 5fae7dc1
      Jason Evans authored
      Create and use FMT* macros that are equivalent to the PRI* macros that
      inttypes.h defines.  This allows uniform use of the Unix-specific format
      specifiers, e.g. "%zu", as well as avoiding Windows-specific definitions
      of e.g. PRIu64.
      
      Add ffs()/ffsl() support for compiling with gcc.
      
      Extract compatibility definitions of ENOENT, EINVAL, EAGAIN, EPERM,
      ENOMEM, and ENORANGE into include/msvc_compat/windows_extra.h and
      use the file for tests as well as for core jemalloc code.
      5fae7dc1