diff --git a/src/modules/graphics/Graphics.cpp b/src/modules/graphics/Graphics.cpp index 92e1b3408..14f839c83 100644 --- a/src/modules/graphics/Graphics.cpp +++ b/src/modules/graphics/Graphics.cpp @@ -248,8 +248,10 @@ void Graphics::createQuadIndexBuffer() Buffer::Settings settings(BUFFERUSAGEFLAG_INDEX, BUFFERDATAUSAGE_STATIC); quadIndexBuffer = newBuffer(settings, DATAFORMAT_UINT16, nullptr, size, 0); - Buffer::Mapper map(*quadIndexBuffer); - fillIndices(TRIANGLEINDEX_QUADS, 0, LOVE_UINT16_MAX, (uint16 *) map.data); + { + Buffer::Mapper map(*quadIndexBuffer); + fillIndices(TRIANGLEINDEX_QUADS, 0, LOVE_UINT16_MAX, (uint16 *) map.data); + } quadIndexBuffer->setImmutable(true); } diff --git a/src/modules/graphics/metal/Buffer.mm b/src/modules/graphics/metal/Buffer.mm index b4ac8ef5b..07cc47f3a 100644 --- a/src/modules/graphics/metal/Buffer.mm +++ b/src/modules/graphics/metal/Buffer.mm @@ -111,7 +111,7 @@ Buffer::~Buffer() void *Buffer::map(MapType /*map*/, size_t offset, size_t size) { @autoreleasepool { - if (size == 0) + if (size == 0 || isImmutable()) return nullptr; Range r(offset, size); @@ -160,7 +160,7 @@ void Buffer::unmap(size_t usedoffset, size_t usedsize) void Buffer::fill(size_t offset, size_t size, const void *data) { @autoreleasepool { - if (size == 0) + if (size == 0 || isImmutable()) return; size_t buffersize = getSize();