Skip to content
  1. May 11, 2012
    • Jason Evans's avatar
      Fix large calloc() zeroing bugs. · d8ceef6c
      Jason Evans authored
      Refactor code such that arena_mapbits_{large,small}_set() always
      preserves the unzeroed flag, and manually manipulate the unzeroed flag
      in the one case where it actually gets reset (in arena_chunk_purge()).
      This fixes unzeroed preservation bugs in arena_run_split() and
      arena_ralloc_large_grow().  These bugs caused large calloc() to return
      non-zeroed memory under some circumstances.
      d8ceef6c
    • Jason Evans's avatar
      Add arena chunk map assertions. · 30fe12b8
      Jason Evans authored
      30fe12b8
    • Jason Evans's avatar
      Refactor arena_run_alloc(). · 5b0c9964
      Jason Evans authored
      Refactor duplicated arena_run_alloc() code into
      arena_run_alloc_helper().
      5b0c9964
  2. May 10, 2012
  3. May 09, 2012
    • Jason Evans's avatar
      Fix chunk_recycle() to stop leaking trailing chunks. · 374d26a4
      Jason Evans authored
      Fix chunk_recycle() to correctly compute trailsize and re-insert
      trailing chunks.  This fixes a major virtual memory leak.
      
      Simplify chunk_record() to avoid dropping/re-acquiring chunks_mtx.
      374d26a4
    • Jason Evans's avatar
      Fix chunk_alloc_mmap() bugs. · de6fbdb7
      Jason Evans authored
      Simplify chunk_alloc_mmap() to no longer attempt map extension.  The
      extra complexity isn't warranted, because although in the success case
      it saves one system call as compared to immediately falling back to
      chunk_alloc_mmap_slow(), it also makes the failure case even more
      expensive.  This simplification removes two bugs:
      
      - For Windows platforms, pages_unmap() wasn't being called for unaligned
        mappings prior to falling back to chunk_alloc_mmap_slow().  This
        caused permanent virtual memory leaks.
      - For non-Windows platforms, alignment greater than chunksize caused
        pages_map() to be called with size 0 when attempting map extension.
        This always resulted in an mmap() error, and subsequent fallback to
        chunk_alloc_mmap_slow().
      de6fbdb7
  4. May 03, 2012
  5. May 02, 2012
  6. May 01, 2012
  7. Apr 29, 2012
    • Mike Hommey's avatar
      Avoid variable length arrays and remove declarations within code · 8b49971d
      Mike Hommey authored
      MSVC doesn't support C99, and building as C++ to be able to use them is
      dangerous, as C++ and C99 are incompatible.
      
      Introduce a VARIABLE_ARRAY macro that either uses VLA when supported,
      or alloca() otherwise. Note that using alloca() inside loops doesn't
      quite work like VLAs, thus the use of VARIABLE_ARRAY there is discouraged.
      It might be worth investigating ways to check whether VARIABLE_ARRAY is
      used in such context at runtime in debug builds and bail out if that
      happens.
      8b49971d
    • Jason Evans's avatar
      f2789940
    • Jason Evans's avatar
      Handle prof_tdata resurrection. · 0050a0f7
      Jason Evans authored
      Handle prof_tdata resurrection during thread shutdown, similarly to how
      tcache and quarantine handle resurrection.
      0050a0f7
  8. Apr 28, 2012
  9. Apr 26, 2012
  10. Apr 25, 2012
  11. Apr 24, 2012