void TransferBufferManager::remove(const TransferBufferManagerKey& key) { UAVCAN_ASSERT(!key.isEmpty()); TransferBufferManagerEntry* dyn = findFirst(key); if (dyn != UAVCAN_NULLPTR) { UAVCAN_TRACE("TransferBufferManager", "Buffer deleted, %s", key.toString().c_str()); buffers_.remove(dyn); TransferBufferManagerEntry::destroy(dyn, allocator_); } }
void TransferBufferManagerImpl::remove(const TransferBufferManagerKey& key) { assert(!key.isEmpty()); TransferBufferManagerEntry* const tbme = findFirstStatic(key); if (tbme) { UAVCAN_TRACE("TransferBufferManager", "Static buffer deleted, %s", key.toString().c_str()); tbme->reset(); optimizeStorage(); return; } DynamicTransferBufferManagerEntry* dyn = findFirstDynamic(key); if (dyn) { UAVCAN_TRACE("TransferBufferManager", "Dynamic buffer deleted, %s", key.toString().c_str()); dynamic_buffers_.remove(dyn); DynamicTransferBufferManagerEntry::destroy(dyn, allocator_); } }