MCPcopy Create free account
hub / github.com/RedisGraph/RedisGraph / DataBlock_DeleteItem

Function DataBlock_DeleteItem

src/util/datablock/datablock.c:203–221  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

201}
202
203void DataBlock_DeleteItem(DataBlock *dataBlock, uint64_t idx) {
204 ASSERT(dataBlock != NULL);
205 ASSERT(!_DataBlock_IndexOutOfBounds(dataBlock, idx));
206
207 // Return if item already deleted.
208 DataBlockItemHeader *item_header = DataBlock_GetItemHeader(dataBlock, idx);
209 if(IS_ITEM_DELETED(item_header)) return;
210
211 // Call item destructor.
212 if(dataBlock->destructor) {
213 unsigned char *item = ITEM_DATA(item_header);
214 dataBlock->destructor(item);
215 }
216
217 MARK_HEADER_AS_DELETED(item_header);
218
219 array_append(dataBlock->deletedIdx, idx);
220 dataBlock->itemCount--;
221}
222
223uint DataBlock_DeletedItemsCount(const DataBlock *dataBlock) {
224 return array_len(dataBlock->deletedIdx);

Callers 3

Graph_DeleteNodesFunction · 0.85
Graph_DeleteEdgesFunction · 0.85
test_dataBlockRemoveItemFunction · 0.85

Calls 2

DataBlock_GetItemHeaderFunction · 0.85

Tested by 1

test_dataBlockRemoveItemFunction · 0.68