diff options
| author | Jason Evans <jasone@canonware.com> | 2012-11-09 19:44:03 (GMT) |
|---|---|---|
| committer | Jason Evans <jasone@canonware.com> | 2012-11-09 19:44:03 (GMT) |
| commit | 87499f6748ebe4817571e817e9f680ccb5bf54a9 (patch) | |
| tree | a98396797d7550a3ceb04e7ddaed7bb8b27f13d7 /src/chunk.c | |
| parent | 3b1f3aca54fede23299cde9034f7b909c3d290d7 (diff) | |
| parent | 556ddc7fa94f13c388ec6c9d2d54ace250540f2c (diff) | |
| download | jemalloc-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.c | 40 |
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; |
