| 247 | } |
| 248 | |
| 249 | void DataBlock_MarkAsDeletedOutOfOrder |
| 250 | ( |
| 251 | DataBlock *dataBlock, |
| 252 | uint64_t idx |
| 253 | ) { |
| 254 | // Check if idx<=data block's current capacity. If needed, allocate additional blocks. |
| 255 | DataBlock_Ensure(dataBlock, idx); |
| 256 | DataBlockItemHeader *item_header = DataBlock_GetItemHeader(dataBlock, idx); |
| 257 | // Delete |
| 258 | MARK_HEADER_AS_DELETED(item_header); |
| 259 | array_append(dataBlock->deletedIdx, idx); |
| 260 | } |
| 261 | |
| 262 | void DataBlock_Free(DataBlock *dataBlock) { |
| 263 | for(uint i = 0; i < dataBlock->blockCount; i++) Block_Free(dataBlock->blocks[i]); |