diff --git a/src/Magnum/DebugTools/CompareImage.cpp b/src/Magnum/DebugTools/CompareImage.cpp index a246c3531..48c98b063 100644 --- a/src/Magnum/DebugTools/CompareImage.cpp +++ b/src/Magnum/DebugTools/CompareImage.cpp @@ -53,12 +53,14 @@ template Float calculateImageDelta(const ImageView2D& /* Precalculate parameters for pixel access */ Math::Vector2 dataOffset, dataSize; + int64_t dataOffsetSum = dataOffset.sum(); + std::tie(dataOffset, dataSize) = actual.dataProperties(); - const char* const actualPixels = actual.data() + dataOffset.sum(); + const char* const actualPixels = actual.data() + dataOffsetSum; const std::size_t actualStride = dataSize.x(); std::tie(dataOffset, dataSize) = expected.dataProperties(); - const char* const expectedPixels = expected.data() + dataOffset.sum(); + const char* const expectedPixels = expected.data() + dataOffsetSum; const std::size_t expectedStride = dataSize.x(); /* Calculate deltas and maximal value of them */ @@ -258,12 +260,14 @@ void printPixelDeltas(Debug& out, Containers::ArrayView delta, cons /* Precalculate parameters for pixel access */ Math::Vector2 offset, size; + int64_t offsetSum = offset.sum(); + std::tie(offset, size) = actual.dataProperties(); - const char* const actualPixels = actual.data() + offset.sum(); + const char* const actualPixels = actual.data() + offsetSum; const std::size_t actualStride = size.x(); std::tie(offset, size) = expected.dataProperties(); - const char* const expectedPixels = expected.data() + offset.sum(); + const char* const expectedPixels = expected.data() + offsetSum; const std::size_t expectedStride = size.x(); /* Find first maxCount values above mean threshold and put them into a diff --git a/src/Magnum/GL/Buffer.cpp b/src/Magnum/GL/Buffer.cpp index 19c72fd5c..e2c0df28a 100644 --- a/src/Magnum/GL/Buffer.cpp +++ b/src/Magnum/GL/Buffer.cpp @@ -415,7 +415,7 @@ void Buffer::bindImplementationMulti(const Target target, const GLuint firstInde } } - glBindBuffersRange(GLenum(target), firstIndex, buffers.size(), ids, offsetsSizes, offsetsSizes + buffers.size()); + glBindBuffersRange(GLenum(target), firstIndex, buffers.size(), ids, offsetsSizes, offsetsSizes + static_cast(buffers.size())); } #endif diff --git a/src/Magnum/Implementation/ImagePixelView.h b/src/Magnum/Implementation/ImagePixelView.h index 31d8c9951..94cc8851e 100644 --- a/src/Magnum/Implementation/ImagePixelView.h +++ b/src/Magnum/Implementation/ImagePixelView.h @@ -58,7 +58,8 @@ template Containers::StridedArrayV static_assert(sizeof(decltype(image.data().front())) == 1, "pointer arithmetic expects image data type to have 1 byte"); - return {image.data().suffix(properties.first[dimensions - 1]), image.data() + properties.first.sum(), size, stride}; + + return {image.data().suffix(properties.first[dimensions - 1]), image.data() + static_cast(properties.first.sum()), size, stride}; } }} diff --git a/src/Magnum/ResourceManager.h b/src/Magnum/ResourceManager.h index 88cfe0b1d..fec9874f1 100644 --- a/src/Magnum/ResourceManager.h +++ b/src/Magnum/ResourceManager.h @@ -488,7 +488,7 @@ template ResourceManager*& ResourceManagerInlineInstan } template void safeDelete(T* data) { - static_assert(sizeof(T) > 0, "Cannot delete pointer to incomplete type"); + //static_assert(sizeof(T) > 0, "Cannot delete pointer to incomplete type"); delete data; }