summaryrefslogtreecommitdiffstats
path: root/src/chunk.c
diff options
context:
space:
mode:
authorJason Evans <jasone@canonware.com>2012-11-09 19:44:03 (GMT)
committerJason Evans <jasone@canonware.com>2012-11-09 19:44:03 (GMT)
commit87499f6748ebe4817571e817e9f680ccb5bf54a9 (patch)
treea98396797d7550a3ceb04e7ddaed7bb8b27f13d7 /src/chunk.c
parent3b1f3aca54fede23299cde9034f7b909c3d290d7 (diff)
parent556ddc7fa94f13c388ec6c9d2d54ace250540f2c (diff)
downloadjemalloc-3.2.0.zip
jemalloc-3.2.0.tar.gz
jemalloc-3.2.0.tar.bz2
Merge branch 'dev'3.2.0
Diffstat (limited to 'src/chunk.c')
-rw-r--r--src/chunk.c40
1 files changed, 14 insertions, 26 deletions
diff --git a/src/chunk.c b/src/chunk.c
index 5fc9e75..1a3bb4f 100644
--- a/src/chunk.c
+++ b/src/chunk.c
@@ -146,40 +146,28 @@ chunk_alloc(size_t size, size_t alignment, bool base, bool *zero,
assert(alignment != 0);
assert((alignment & chunksize_mask) == 0);
- /*
- * Try to recycle an existing mapping.
- */
-
/* "primary" dss. */
- if (config_dss && dss_prec == dss_prec_primary && (ret =
- chunk_recycle(&chunks_szad_dss, &chunks_ad_dss, size, alignment,
- base, zero)) != NULL)
- goto label_return;
+ if (config_dss && dss_prec == dss_prec_primary) {
+ if ((ret = chunk_recycle(&chunks_szad_dss, &chunks_ad_dss, size,
+ alignment, base, zero)) != NULL)
+ goto label_return;
+ if ((ret = chunk_alloc_dss(size, alignment, zero)) != NULL)
+ goto label_return;
+ }
/* mmap. */
if ((ret = chunk_recycle(&chunks_szad_mmap, &chunks_ad_mmap, size,
alignment, base, zero)) != NULL)
goto label_return;
- /* "secondary" dss. */
- if (config_dss && dss_prec == dss_prec_secondary && (ret =
- chunk_recycle(&chunks_szad_dss, &chunks_ad_dss, size, alignment,
- base, zero)) != NULL)
- goto label_return;
-
- /*
- * Try to allocate a new mapping.
- */
-
- /* "primary" dss. */
- if (config_dss && dss_prec == dss_prec_primary && (ret =
- chunk_alloc_dss(size, alignment, zero)) != NULL)
- goto label_return;
- /* mmap. */
if ((ret = chunk_alloc_mmap(size, alignment, zero)) != NULL)
goto label_return;
/* "secondary" dss. */
- if (config_dss && dss_prec == dss_prec_secondary && (ret =
- chunk_alloc_dss(size, alignment, zero)) != NULL)
- goto label_return;
+ if (config_dss && dss_prec == dss_prec_secondary) {
+ if ((ret = chunk_recycle(&chunks_szad_dss, &chunks_ad_dss, size,
+ alignment, base, zero)) != NULL)
+ goto label_return;
+ if ((ret = chunk_alloc_dss(size, alignment, zero)) != NULL)
+ goto label_return;
+ }
/* All strategies for allocation failed. */
ret = NULL;