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

Function DataBlock_Accommodate

src/util/datablock/datablock.c:127–137  ·  view source on GitHub ↗

Make sure datablock can accommodate at least k items.

Source from the content-addressed store, hash-verified

125
126// Make sure datablock can accommodate at least k items.
127void DataBlock_Accommodate(DataBlock *dataBlock, int64_t k) {
128 // Compute number of free slots.
129 int64_t freeSlotsCount = dataBlock->itemCap - dataBlock->itemCount;
130 int64_t additionalItems = k - freeSlotsCount;
131
132 if(additionalItems > 0) {
133 int64_t additionalBlocks =
134 ITEM_COUNT_TO_BLOCK_COUNT(additionalItems, dataBlock->blockCap);
135 _DataBlock_AddBlocks(dataBlock, additionalBlocks);
136 }
137}
138
139void DataBlock_Ensure(DataBlock *dataBlock, uint64_t idx) {
140 ASSERT(dataBlock != NULL);

Callers 5

Graph_AllocateNodesFunction · 0.85
Graph_AllocateEdgesFunction · 0.85
test_dataBlockAddItemFunction · 0.85
test_dataBlockScanFunction · 0.85
test_dataBlockRemoveItemFunction · 0.85

Calls 1

_DataBlock_AddBlocksFunction · 0.85

Tested by 3

test_dataBlockAddItemFunction · 0.68
test_dataBlockScanFunction · 0.68
test_dataBlockRemoveItemFunction · 0.68