diff options
| author | Jason Evans <jasone@canonware.com> | 2016-10-31 23:32:33 (GMT) |
|---|---|---|
| committer | Jason Evans <jasone@canonware.com> | 2016-10-31 23:32:33 (GMT) |
| commit | b93f63b3ebab068efdcfa2ea3e19055bfc2e7f82 (patch) | |
| tree | 0ef432c4dba82672453af98661c686f9c9461360 /src | |
| parent | 90b60eeae4f557fae99158f9899bd7b01a9ac662 (diff) | |
| download | jemalloc-b93f63b3ebab068efdcfa2ea3e19055bfc2e7f82.zip jemalloc-b93f63b3ebab068efdcfa2ea3e19055bfc2e7f82.tar.gz jemalloc-b93f63b3ebab068efdcfa2ea3e19055bfc2e7f82.tar.bz2 | |
Fix extent_rtree acquire() to release element on error.
This resolves #480.
Diffstat (limited to 'src')
| -rw-r--r-- | src/extent.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/extent.c b/src/extent.c index e4ceb8f..809777a 100644 --- a/src/extent.c +++ b/src/extent.c @@ -229,8 +229,10 @@ extent_rtree_acquire(tsdn_t *tsdn, rtree_ctx_t *rtree_ctx, *r_elm_b = rtree_elm_acquire(tsdn, &extents_rtree, rtree_ctx, (uintptr_t)extent_last_get(extent), dependent, init_missing); - if (!dependent && *r_elm_b == NULL) + if (!dependent && *r_elm_b == NULL) { + rtree_elm_release(tsdn, &extents_rtree, *r_elm_a); return (true); + } assert(*r_elm_b != NULL); } else *r_elm_b = NULL; |
