mirror of
https://github.com/jemalloc/jemalloc.git
synced 2026-04-14 22:51:50 +03:00
Bypass tcache when draining quarantined allocations.
This avoids the potential surprise of deallocating an object with one tcache specified, and having the object cached in a different tcache once it drains from the quarantine.
This commit is contained in:
parent
c073f8167a
commit
09983d2f54
1 changed files with 3 additions and 3 deletions
|
|
@ -98,7 +98,7 @@ quarantine_drain_one(tsd_t *tsd, quarantine_t *quarantine)
|
|||
{
|
||||
quarantine_obj_t *obj = &quarantine->objs[quarantine->first];
|
||||
assert(obj->usize == isalloc(obj->ptr, config_prof));
|
||||
idalloc(tsd, obj->ptr);
|
||||
idalloctm(tsd, obj->ptr, NULL, false);
|
||||
quarantine->curbytes -= obj->usize;
|
||||
quarantine->curobjs--;
|
||||
quarantine->first = (quarantine->first + 1) & ((ZU(1) <<
|
||||
|
|
@ -123,7 +123,7 @@ quarantine(tsd_t *tsd, void *ptr)
|
|||
assert(opt_quarantine);
|
||||
|
||||
if ((quarantine = tsd_quarantine_get(tsd)) == NULL) {
|
||||
idalloc(tsd, ptr);
|
||||
idalloctm(tsd, ptr, NULL, false);
|
||||
return;
|
||||
}
|
||||
/*
|
||||
|
|
@ -162,7 +162,7 @@ quarantine(tsd_t *tsd, void *ptr)
|
|||
}
|
||||
} else {
|
||||
assert(quarantine->curbytes == 0);
|
||||
idalloc(tsd, ptr);
|
||||
idalloctm(tsd, ptr, NULL, false);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue