diff options
author | Frederik Gladhorn <frederik.gladhorn@digia.com> | 2015-10-23 16:28:03 +0200 |
---|---|---|
committer | Frederik Gladhorn <frederik.gladhorn@theqtcompany.com> | 2015-10-23 21:11:43 +0000 |
commit | 129d268246bf4871cdac84fd4a40d20cece71b3c (patch) | |
tree | 83c4c18b8628c2607aca734a61c43d85b8ad0a38 /src/gui | |
parent | ccca3ffdc26f585f28ce0a8539f96f02adce30dc (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.cpp | 3 |
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) { |