MCPcopy Create free account
hub / github.com/acl-dev/acl / memPoolFree

Function memPoolFree

lib_acl/src/stdlib/memory/squid_allocator.c:283–330  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

281}
282
283static void memPoolFree(const char *filename, int line,
284 ACL_ALLOCATOR *allocator, ACL_MEM_POOL * pool, void *obj)
285{
286 SQUID_MEM_ALLOCATOR *squid_allocator =
287 (SQUID_MEM_ALLOCATOR *) allocator;
288 MemPool *squid_pool = (MemPool *) pool;
289
290 acl_assert(pool && obj);
291 memMeterDec(squid_pool->meter.inuse);
292 memMeterDel(squid_allocator->TheMeter.inuse, pool->obj_size);
293 allocator->mem_pool_free_calls++;
294 (void) VALGRIND_CHECK_WRITABLE(obj, pool->obj_size);
295#if DEBUG_MEMPOOL
296 {
297 struct mempool_cookie *cookie = (void *)
298 (((unsigned char *) obj) + pool->real_obj_size);
299 (void) VALGRIND_MAKE_READABLE(cookie, sizeof(cookie));
300 acl_assert(cookie->cookie == MEMPOOL_COOKIE(obj));
301 acl_assert(cookie->pool == pool);
302 }
303#endif
304 if (squid_allocator->TheMeter.idle.level + pool->obj_size
305 <= allocator->mem_idle_limit)
306 {
307 memMeterInc(squid_pool->meter.idle);
308 memMeterAdd(squid_allocator->TheMeter.idle, pool->obj_size);
309#if DEBUG_MEMPOOL
310 (void) VALGRIND_MAKE_NOACCESS(obj, pool->real_obj_size
311 + sizeof(struct mempool_cookie));
312#else
313 (void) VALGRIND_MAKE_NOACCESS(obj, pool->obj_size);
314#endif
315 if (pool->before_free_fn)
316 pool->before_free_fn(obj, pool->pool_ctx);
317
318 /* xxx: I should add some here--zsx */
319 /* memset(obj, 0, pool->obj_size); */
320 acl_stack_append(pool->pstack, obj);
321 } else {
322 memMeterDec(squid_pool->meter.alloc);
323 memMeterDel(squid_allocator->TheMeter.alloc, pool->obj_size);
324 if (pool->before_free_fn)
325 pool->before_free_fn(obj, pool->pool_ctx);
326 acl_default_free(filename, line, obj);
327 }
328 acl_assert(squid_pool->meter.idle.level
329 <= squid_pool->meter.alloc.level);
330}
331
332static int memPoolWasUsed(const ACL_MEM_POOL * pool)
333{

Callers

nothing calls this directly

Calls 1

acl_stack_appendFunction · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…