| 152 | } |
| 153 | |
| 154 | void *DataBlock_GetItem(const DataBlock *dataBlock, uint64_t idx) { |
| 155 | ASSERT(dataBlock != NULL); |
| 156 | |
| 157 | // return NULL if idx is out of bounds |
| 158 | if(_DataBlock_IndexOutOfBounds(dataBlock, idx)) return NULL; |
| 159 | |
| 160 | DataBlockItemHeader *item_header = DataBlock_GetItemHeader(dataBlock, idx); |
| 161 | |
| 162 | // Incase item is marked as deleted, return NULL. |
| 163 | if(IS_ITEM_DELETED(item_header)) return NULL; |
| 164 | |
| 165 | return ITEM_DATA(item_header); |
| 166 | } |
| 167 | |
| 168 | uint64_t DataBlock_GetReservedIdx(const DataBlock *dataBlock, uint64_t n) { |
| 169 | ASSERT(dataBlock != NULL); |