From 6843f7fe3d465e517c1d22366b9810ebfd680bf2 Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Wed, 2 Feb 2022 18:07:07 +0100 Subject: Prospective fix for broken QByteArray::__msetitem__() on big endian architectures Remove a dubious cast from long to const char * which depends on byte order. Fixes: PYSIDE-1804 Change-Id: Iee2d809d4e9362b89439b9c56a5fb18e1f91d6fd Reviewed-by: Shyamnath Premnadh Reviewed-by: Christian Tismer (cherry picked from commit 0cfddaa56fb560c4ffb3809b7924a0fbb6f3889f) Reviewed-by: Qt Cherry-pick Bot --- sources/pyside6/PySide6/glue/qtcore.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/sources/pyside6/PySide6/glue/qtcore.cpp b/sources/pyside6/PySide6/glue/qtcore.cpp index 13cc1727c..218b2d698 100644 --- a/sources/pyside6/PySide6/glue/qtcore.cpp +++ b/sources/pyside6/PySide6/glue/qtcore.cpp @@ -1059,9 +1059,10 @@ if (PyIndex_Check(_key)) { QByteArray temp; if (PyLong_Check(item)) { int overflow; - long ival = PyLong_AsLongAndOverflow(item, &overflow); - // Not suppose to bigger than 255 because only bytes, bytearray, QByteArray were accept - temp = QByteArray(reinterpret_cast(&ival)); + const long ival = PyLong_AsLongAndOverflow(item, &overflow); + // Not supposed to be bigger than 255 because only bytes, + // bytearray, QByteArray were accepted + temp.append(char(ival)); } else { temp = %CONVERTTOCPP[QByteArray](item); } -- cgit v1.2.3