| 892 | } |
| 893 | |
| 894 | void BTreeDatabase::rawReadBlock(BlockIndex blockIndex, size_t blockOffset, char* block, size_t size) const { |
| 895 | if (blockOffset > m_blockSize || size > m_blockSize - blockOffset) |
| 896 | throw DBException::format("Read past end of block, offset: {} size {}", blockOffset, size); |
| 897 | |
| 898 | if (size <= 0) |
| 899 | return; |
| 900 | |
| 901 | if (auto buffer = m_uncommittedWrites.ptr(blockIndex)) |
| 902 | buffer->copyTo(block, blockOffset, size); |
| 903 | else |
| 904 | m_device->readFullAbsolute(HeaderSize + blockIndex * (StreamOffset)m_blockSize + blockOffset, block, size); |
| 905 | } |
| 906 | |
| 907 | void BTreeDatabase::rawWriteBlock(BlockIndex blockIndex, size_t blockOffset, char const* block, size_t size) { |
| 908 | if (blockOffset > m_blockSize || size > m_blockSize - blockOffset) |
nothing calls this directly
no test coverage detected