summaryrefslogtreecommitdiffstats
path: root/src/gui
diff options
context:
space:
mode:
authorFrederik Gladhorn <frederik.gladhorn@digia.com>2015-10-23 16:28:03 +0200
committerFrederik Gladhorn <frederik.gladhorn@theqtcompany.com>2015-10-23 21:11:43 +0000
commit129d268246bf4871cdac84fd4a40d20cece71b3c (patch)
tree83c4c18b8628c2607aca734a61c43d85b8ad0a38 /src/gui
parentccca3ffdc26f585f28ce0a8539f96f02adce30dc (diff)
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) <ogoffart@woboq.com>
Diffstat (limited to 'src/gui')
-rw-r--r--src/gui/painting/qdrawhelper.cpp3
1 files changed, 1 insertions, 2 deletions
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<PixelOrder>(*buffer++);
- ++i;
}
for (; i < count-15; i += 16) {