Add support for python 3.12 and raise minimum required version to 3.4.

Signed-off-by: Michele Calgaro <michele.calgaro@yahoo.it>
(cherry picked from commit 15eb6c387b)
r14.1.x
Michele Calgaro 10 months ago
parent 27f46d6031
commit 244f8405a7
Signed by: MicheleC
GPG Key ID: 2A75B7CA8ADED5CF

@ -196,11 +196,7 @@ public:
Py_BEGIN_ALLOW_THREADS
TQByteArray *ba = new TQByteArray();
#if PY_VERSION_HEX >= 0x03030000
ba -> duplicate((char *)PyUnicode_1BYTE_DATA(sipPy),PyUnicode_GET_SIZE(sipPy));
#else
ba -> duplicate((char *)PyUnicode_AS_DATA(sipPy),PyUnicode_GET_SIZE(sipPy));
#endif
ba -> duplicate((char *)PyUnicode_1BYTE_DATA(sipPy),(uint)PyUnicode_GET_LENGTH(sipPy));
*sipCppPtr = ba;
Py_END_ALLOW_THREADS

@ -787,9 +787,7 @@ PyTypeObject pytqtWrapperType_Type = {
0, /* tp_weaklist */
0, /* tp_del */
0, /* tp_version_tag */
#if PY_VERSION_HEX >= 0x03040000
0, /* tp_finalize */
#endif
#if PY_VERSION_HEX >= 0x03080000
0, /* tp_vectorcall */
#endif
@ -1005,9 +1003,7 @@ static sipWrapperType pytqtWrapper_Type = {
0, /* tp_weaklist */
0, /* tp_del */
0, /* tp_version_tag */
#if PY_VERSION_HEX >= 0x03040000
0, /* tp_finalize */
#endif
#if PY_VERSION_HEX >= 0x03080000
0, /* tp_vectorcall */
#endif

@ -752,7 +752,6 @@ PyObject *PyTQt_tqt_PyObject_FromTQString(const TQString *tqstr)
{
PyObject *obj;
#if PY_VERSION_HEX >= 0x03030000
// We have to work out exactly which kind to use. We assume ASCII while we
// are checking so that we only go through the string once in the most
// common case. Note that we can't use PyUnicode_FromKindAndData() because
@ -787,24 +786,6 @@ PyObject *PyTQt_tqt_PyObject_FromTQString(const TQString *tqstr)
Py_UCS4 uch = tqstr->at(tqt_i).unicode();
PyUnicode_WRITE(kind, data, tqt_i, uch);
}
#elif defined(Py_UNICODE_WIDE)
// Note that this doesn't handle code points greater than 0xffff. It could
// but it's only an issue for old versions of TQt.
if ((obj = PyUnicode_FromUnicode(NULL, tqstr->length())) == NULL)
return NULL;
Py_UNICODE *pyu = PyUnicode_AS_UNICODE(obj);
for (unsigned int i = 0; i < tqstr->length(); ++i)
*pyu++ = (tqstr->at(i)).unicode();
#else
if ((obj = PyUnicode_FromUnicode(NULL, tqstr->length())) == NULL)
return NULL;
memcpy(PyUnicode_AS_UNICODE(obj), tqstr->ucs2(),
tqstr->length() * sizeof (Py_UNICODE));
#endif
return obj;
}
@ -821,7 +802,6 @@ TQString *PyTQt_tqt_PyObject_AsTQString(PyObject *obj)
{
if (PyUnicode_Check(obj))
{
#if PY_VERSION_HEX >= 0x03030000
SIP_SSIZE_T len = PyUnicode_GET_LENGTH(obj);
switch (PyUnicode_KIND(obj))
@ -848,21 +828,6 @@ TQString *PyTQt_tqt_PyObject_AsTQString(PyObject *obj)
}
return NULL;
#else
TQString *tqstr = new TQString;
# ifdef Py_UNICODE_WIDE
Py_UNICODE *ucode = PyUnicode_AS_UNICODE(obj);
SIP_SSIZE_T len = PyUnicode_GET_SIZE(obj);
for (SIP_SSIZE_T i = 0; i < len; ++i)
tqstr->append(TQChar((uint)ucode[i]));
# else
tqstr->setUnicodeCodes((ushort *)PyUnicode_AS_UNICODE(obj),PyUnicode_GET_SIZE(obj));
# endif
return tqstr;
#endif
}
else if (PyBytes_Check(obj))
{

Loading…
Cancel
Save