From 129d268246bf4871cdac84fd4a40d20cece71b3c Mon Sep 17 00:00:00 2001 From: Frederik Gladhorn Date: Fri, 23 Oct 2015 16:28:03 +0200 Subject: Fix alignment in qConvertARGB64PMToA2RGB30PM_sse2 _mm_load_si128 requires 16 byte alignment. This crashes on 32 bit Windows builds. Change-Id: Ib6c30eba726747bbab56467eada820521981a80c Reviewed-by: Olivier Goffart (Woboq GmbH) --- src/gui/painting/qdrawhelper.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'src/gui') diff --git a/src/gui/painting/qdrawhelper.cpp b/src/gui/painting/qdrawhelper.cpp index 6cfc4b9307..5c1cd8adef 100644 --- a/src/gui/painting/qdrawhelper.cpp +++ b/src/gui/painting/qdrawhelper.cpp @@ -1257,9 +1257,8 @@ static inline void qConvertARGB64PMToA2RGB30PM_sse2(uint *dest, const QRgba64 *b const __m128i cmask = _mm_set1_epi32(0x000003ff); int i = 0; __m128i vr, vg, vb, va; - if (i < count && (const uintptr_t)buffer & 0x8) { + for (; i < count && (const uintptr_t)buffer & 0xF; ++i) { *dest++ = qConvertRgb64ToRgb30(*buffer++); - ++i; } for (; i < count-15; i += 16) { -- cgit v1.2.3