This might have seemed like a good idea, adding an additional ''consistency check''... However — we ''do have'' a generic check, insofar `BufferMetadata` is a **state engine**. As long as we're able to prevent, reliably, that the same buffer address ends up being classified as a different buffer type, this should be enough to prevent double-use of any buffer (letting aside that `BufferProvider` is backed by an implementing memory allocator, which in itself should prevent any double-use. Removing this feature resolves some ambiguity in the overall design, and allows to turn `BufferMetadata::lock(type, address)` into a private implementation function. In the old code, there were some external access paths directly entering into that implementation function, which caused a lot of confusion (at least for me...)
12 MiB
12 MiB
| The file is too large to be shown. |