mirror of
https://github.com/encounter/dawn-cmake.git
synced 2025-12-21 10:49:14 +00:00
Replace size_t with uint64_t in ringbuffer.
Adds overflow check in RingBufferAllocator + unit-test. Also, update clients to use uint64_t to avoid casts or narrowing. BUG=dawn:233 Change-Id: I652e3142407006d082491add600371f95d44741a Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/12380 Reviewed-by: Austin Eng <enga@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Bryan Bernhart <bryan.bernhart@intel.com>
This commit is contained in:
committed by
Commit Bot service account
parent
4794168ef8
commit
f603903da7
@@ -18,7 +18,7 @@
|
||||
|
||||
namespace dawn_native {
|
||||
|
||||
DynamicUploader::DynamicUploader(DeviceBase* device, size_t size) : mDevice(device) {
|
||||
DynamicUploader::DynamicUploader(DeviceBase* device, uint64_t size) : mDevice(device) {
|
||||
mRingBuffers.emplace_back(
|
||||
std::unique_ptr<RingBuffer>(new RingBuffer{nullptr, RingBufferAllocator(size)}));
|
||||
}
|
||||
@@ -28,7 +28,7 @@ namespace dawn_native {
|
||||
mDevice->GetPendingCommandSerial());
|
||||
}
|
||||
|
||||
ResultOrError<UploadHandle> DynamicUploader::Allocate(size_t allocationSize, Serial serial) {
|
||||
ResultOrError<UploadHandle> DynamicUploader::Allocate(uint64_t allocationSize, Serial serial) {
|
||||
// Note: Validation ensures size is already aligned.
|
||||
// First-fit: find next smallest buffer large enough to satisfy the allocation request.
|
||||
RingBuffer* targetRingBuffer = mRingBuffers.back().get();
|
||||
@@ -36,7 +36,7 @@ namespace dawn_native {
|
||||
const RingBufferAllocator& ringBufferAllocator = ringBuffer->mAllocator;
|
||||
// Prevent overflow.
|
||||
ASSERT(ringBufferAllocator.GetSize() >= ringBufferAllocator.GetUsedSize());
|
||||
const size_t remainingSize =
|
||||
const uint64_t remainingSize =
|
||||
ringBufferAllocator.GetSize() - ringBufferAllocator.GetUsedSize();
|
||||
if (allocationSize <= remainingSize) {
|
||||
targetRingBuffer = ringBuffer.get();
|
||||
@@ -44,7 +44,7 @@ namespace dawn_native {
|
||||
}
|
||||
}
|
||||
|
||||
size_t startOffset = RingBufferAllocator::kInvalidOffset;
|
||||
uint64_t startOffset = RingBufferAllocator::kInvalidOffset;
|
||||
if (targetRingBuffer != nullptr) {
|
||||
startOffset = targetRingBuffer->mAllocator.Allocate(allocationSize, serial);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user