MCPcopy Create free account
hub / github.com/OpenDDS/OpenDDS / remove_free_alloc

Method remove_free_alloc

dds/DCPS/MemoryPool.cpp:437–462  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

435}
436
437void
438MemoryPool::remove_free_alloc(FreeHeader* block_to_alloc)
439{
440 FreeHeader* smaller = block_to_alloc->smaller_free(pool_ptr_);
441 FreeHeader* larger = block_to_alloc->larger_free(pool_ptr_);
442
443 block_to_alloc->set_smaller_free(NULL, NULL);
444 block_to_alloc->set_larger_free(NULL, NULL);
445
446 // If this was the largest free alloc
447 if (block_to_alloc == largest_free_) {
448 // It no longer is
449 largest_free_ = smaller;
450 }
451
452 if (larger) {
453 larger->set_smaller_free(smaller, pool_ptr_);
454 }
455
456 if (smaller) {
457 smaller->set_larger_free(larger, pool_ptr_);
458 }
459
460 // Remove from free index
461 free_index_.remove(block_to_alloc, larger);
462}
463
464void
465MemoryPool::insert_free_alloc(FreeHeader* freed)

Callers

nothing calls this directly

Calls 5

smaller_freeMethod · 0.80
larger_freeMethod · 0.80
set_smaller_freeMethod · 0.80
set_larger_freeMethod · 0.80
removeMethod · 0.45

Tested by

no test coverage detected