mirror of
https://github.com/jemalloc/jemalloc.git
synced 2026-07-23 21:23:06 +00:00
Fix extent_rtree acquire() to release element on error.
This resolves #480.
This commit is contained in:
@@ -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,
|
*r_elm_b = rtree_elm_acquire(tsdn, &extents_rtree, rtree_ctx,
|
||||||
(uintptr_t)extent_last_get(extent), dependent,
|
(uintptr_t)extent_last_get(extent), dependent,
|
||||||
init_missing);
|
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);
|
return (true);
|
||||||
|
}
|
||||||
assert(*r_elm_b != NULL);
|
assert(*r_elm_b != NULL);
|
||||||
} else
|
} else
|
||||||
*r_elm_b = NULL;
|
*r_elm_b = NULL;
|
||||||
|
|||||||
Reference in New Issue
Block a user