* [gentoo-commits] gentoo-x86 commit in dev-python/PyQt4/files: PyQt4-4.7.3-qreal_float_support.patch
@ 2010-06-16 1:41 TomAs Touceda (chiiph)
0 siblings, 0 replies; 2+ messages in thread
From: TomAs Touceda (chiiph) @ 2010-06-16 1:41 UTC (permalink / raw
To: gentoo-commits
chiiph 10/06/16 01:41:46
Added: PyQt4-4.7.3-qreal_float_support.patch
Log:
Add patch for qreal/float support in ARM wrt bug 322349
(Portage version: 2.2_rc67/cvs/Linux i686)
Revision Changes Path
1.1 dev-python/PyQt4/files/PyQt4-4.7.3-qreal_float_support.patch
file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-python/PyQt4/files/PyQt4-4.7.3-qreal_float_support.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-python/PyQt4/files/PyQt4-4.7.3-qreal_float_support.patch?rev=1.1&content-type=text/plain
Index: PyQt4-4.7.3-qreal_float_support.patch
===================================================================
#! /bin/sh /usr/share/dpatch/dpatch-run
## 03_qreal_float_support.dpatch by Michael Casadevall <sonicmctails@gmail.com>
##
## DP: Corrects a configure test, and adds explicate double handling
## to qlist.sip on architectures where qreal != double
@DPATCH@
Index: python-qt4-4.7.2/configure.py
===================================================================
--- python-qt4-4.7.2.orig/configure.py 2010-03-17 19:29:19.000000000 +0100
+++ python-qt4-4.7.2/configure.py 2010-03-25 23:53:55.468631945 +0100
@@ -1915,8 +1915,9 @@
out << "PyQt_NoOpenGLES\\n";
#endif
- if (sizeof (qreal) != sizeof (double))
+#if defined(QT_NO_FPU) || defined(QT_ARCH_ARM) || defined(QT_ARCH_WINDOWSCE)
out << "PyQt_qreal_double\\n";
+#endif
return 0;
}
Index: python-qt4-4.7.2/sip/QtCore/qlist.sip
===================================================================
--- python-qt4-4.7.2.orig/sip/QtCore/qlist.sip 2010-03-17 19:29:26.000000000 +0100
+++ python-qt4-4.7.2/sip/QtCore/qlist.sip 2010-03-25 23:53:55.468631945 +0100
@@ -749,3 +749,227 @@
return sipGetState(sipTransferObj);
%End
};
+
+// If we're on an architecture where qreal != double, then we need to also
+// explicately handle doubles. On architectures where qreal == double, they
+// will automaticially be cast upwards
+
+%If (!PyQt_qreal_double)
+
+%If (Qt_4_3_0 -)
+// QList<QPair<double, double> > is implemented as a Python list of 2-element tuples.
+%MappedType QList<QPair<double, double> >
+{
+%TypeHeaderCode
+#include <qlist.h>
+#include <qpair.h>
+%End
+
+%ConvertFromTypeCode
+ // Create the list.
+ PyObject *l;
+
+ if ((l = PyList_New(sipCpp->size())) == NULL)
+ return NULL;
+
+ // Set the list elements.
+ for (int i = 0; i < sipCpp->size(); ++i)
+ {
+ const QPair<double, double> &p = sipCpp->at(i);
+ PyObject *pobj;
+
+ if ((pobj = Py_BuildValue((char *)"dd", p.first, p.second)) == NULL)
+ {
+ Py_DECREF(l);
+
+ return NULL;
+ }
+
+ PyList_SET_ITEM(l, i, pobj);
+ }
+
+ return l;
+%End
+
+%ConvertToTypeCode
+ SIP_SSIZE_T len;
+
+ // Check the type if that is all that is required.
+ if (sipIsErr == NULL)
+ {
+ if (!PySequence_Check(sipPy) || (len = PySequence_Size(sipPy)) < 0)
+ return 0;
+
+ for (SIP_SSIZE_T i = 0; i < len; ++i)
+ {
+ PyObject *tup = PySequence_ITEM(sipPy, i);
+
+ if (!PySequence_Check(tup) || PySequence_Size(tup) != 2)
+ return 0;
+ }
+
+ return 1;
+ }
+
+ QList<QPair<double, double> > *ql = new QList<QPair<double, double> >;
+ len = PySequence_Size(sipPy);
+
+ for (SIP_SSIZE_T i = 0; i < len; ++i)
+ {
+ PyObject *tup = PySequence_ITEM(sipPy, i);
+
+ double first = PyFloat_AsDouble(PySequence_ITEM(tup, 0));
+ double second = PyFloat_AsDouble(PySequence_ITEM(tup, 1));
+
+ ql->append(QPair<double, double>(first, second));
+ }
+
+ *sipCppPtr = ql;
+
+ return sipGetState(sipTransferObj);
+%End
+};
+%End
+%If (Qt_4_3_0 -)
+// QList<QPair<double, TYPE> > is implemented as a Python list of 2-element tuples.
+template<double, TYPE>
+%MappedType QList<QPair<double, TYPE> >
+{
+%TypeHeaderCode
+#include <qlist.h>
+#include <qpair.h>
+%End
+
+%ConvertFromTypeCode
+ // Create the list.
+ PyObject *l;
+
+ if ((l = PyList_New(sipCpp->size())) == NULL)
+ return NULL;
+
+ // Set the list elements.
+ for (int i = 0; i < sipCpp->size(); ++i)
+ {
+ const QPair<double, TYPE> &p = sipCpp->at(i);
+ TYPE *t = new TYPE(p.second);
+ PyObject *pobj;
+
+ if ((pobj = sipBuildResult(NULL, "(dB)", p.first, t, sipClass_TYPE, sipTransferObj)) == NULL)
+ {
+ Py_DECREF(l);
+ delete t;
+
+ return NULL;
+ }
+
+ PyList_SET_ITEM(l, i, pobj);
+ }
+
+ return l;
+%End
+
+%ConvertToTypeCode
+ SIP_SSIZE_T len;
+
+ // Check the type if that is all that is required.
+ if (sipIsErr == NULL)
+ {
+ if (!PySequence_Check(sipPy) || (len = PySequence_Size(sipPy)) < 0)
+ return 0;
+
+ for (SIP_SSIZE_T i = 0; i < len; ++i)
+ {
+ PyObject *tup = PySequence_ITEM(sipPy, i);
+
+ if (!PySequence_Check(tup) || PySequence_Size(tup) != 2)
+ return 0;
+
+ if (!sipCanConvertToInstance(PySequence_ITEM(tup, 1), sipClass_TYPE, SIP_NOT_NONE))
+ return 0;
+ }
+
+ return 1;
+ }
+
+ QList<QPair<double, TYPE> > *ql = new QList<QPair<double, TYPE> >;
+ len = PySequence_Size(sipPy);
+
+ for (SIP_SSIZE_T i = 0; i < len; ++i)
+ {
+ PyObject *tup = PySequence_ITEM(sipPy, i);
+ double d;
+ int state;
+
+ d = PyFloat_AsDouble(PySequence_ITEM(tup, 0));
+ TYPE *t = reinterpret_cast<TYPE *>(sipConvertToInstance(PySequence_ITEM(tup, 1), sipClass_TYPE, sipTransferObj, SIP_NOT_NONE, &state, sipIsErr));
+
+ if (*sipIsErr)
+ {
+ sipReleaseInstance(t, sipClass_TYPE, state);
+
+ delete ql;
+ return 0;
+ }
+
+ ql->append(QPair<double, TYPE>(d, *t));
+
+ sipReleaseInstance(t, sipClass_TYPE, state);
+ }
+
+ *sipCppPtr = ql;
+
+ return sipGetState(sipTransferObj);
+%End
+};
+%End
+
+// QList<double> is implemented as a Python list of doubles.
+%MappedType QList<double>
+{
+%TypeHeaderCode
+#include <qlist.h>
+%End
+
+%ConvertFromTypeCode
+ // Create the list.
+ PyObject *l;
+
+ if ((l = PyList_New(sipCpp->size())) == NULL)
+ return NULL;
+
+ // Set the list elements.
+ for (int i = 0; i < sipCpp->size(); ++i)
+ {
+ PyObject *pobj;
+
+ if ((pobj = PyFloat_FromDouble(sipCpp->value(i))) == NULL)
+ {
+ Py_DECREF(l);
+
+ return NULL;
+ }
+
+ PyList_SET_ITEM(l, i, pobj);
+ }
+
+ return l;
+%End
+
+%ConvertToTypeCode
+ // Check the type if that is all that is required.
+ if (sipIsErr == NULL)
+ return (PySequence_Check(sipPy) && PySequence_Size(sipPy) >= 0);
+
+ QList<double> *ql = new QList<double>;
+ SIP_SSIZE_T len = PySequence_Size(sipPy);
+
+ for (SIP_SSIZE_T i = 0; i < len; ++i)
+ ql->append(PyFloat_AsDouble(PySequence_ITEM(sipPy, i)));
+
+ *sipCppPtr = ql;
+
+ return sipGetState(sipTransferObj);
+%End
+};
+
+%End
^ permalink raw reply [flat|nested] 2+ messages in thread
* [gentoo-commits] gentoo-x86 commit in dev-python/PyQt4/files: PyQt4-4.7.3-qreal_float_support.patch
@ 2013-12-28 18:46 Steve Arnold (nerdboy)
0 siblings, 0 replies; 2+ messages in thread
From: Steve Arnold (nerdboy) @ 2013-12-28 18:46 UTC (permalink / raw
To: gentoo-commits
nerdboy 13/12/28 18:46:22
Modified: PyQt4-4.7.3-qreal_float_support.patch
Log:
Updated qreal_float patch (for arm) to remove obsolete hunk.
(Portage version: 2.2.7/cvs/Linux x86_64, signed Manifest commit with key )
Revision Changes Path
1.2 dev-python/PyQt4/files/PyQt4-4.7.3-qreal_float_support.patch
file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-python/PyQt4/files/PyQt4-4.7.3-qreal_float_support.patch?rev=1.2&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-python/PyQt4/files/PyQt4-4.7.3-qreal_float_support.patch?rev=1.2&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-python/PyQt4/files/PyQt4-4.7.3-qreal_float_support.patch?r1=1.1&r2=1.2
Index: PyQt4-4.7.3-qreal_float_support.patch
===================================================================
RCS file: /var/cvsroot/gentoo-x86/dev-python/PyQt4/files/PyQt4-4.7.3-qreal_float_support.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- PyQt4-4.7.3-qreal_float_support.patch 16 Jun 2010 01:41:45 -0000 1.1
+++ PyQt4-4.7.3-qreal_float_support.patch 28 Dec 2013 18:46:22 -0000 1.2
@@ -5,21 +5,6 @@
## to qlist.sip on architectures where qreal != double
@DPATCH@
-Index: python-qt4-4.7.2/configure.py
-===================================================================
---- python-qt4-4.7.2.orig/configure.py 2010-03-17 19:29:19.000000000 +0100
-+++ python-qt4-4.7.2/configure.py 2010-03-25 23:53:55.468631945 +0100
-@@ -1915,8 +1915,9 @@
- out << "PyQt_NoOpenGLES\\n";
- #endif
-
-- if (sizeof (qreal) != sizeof (double))
-+#if defined(QT_NO_FPU) || defined(QT_ARCH_ARM) || defined(QT_ARCH_WINDOWSCE)
- out << "PyQt_qreal_double\\n";
-+#endif
-
- return 0;
- }
Index: python-qt4-4.7.2/sip/QtCore/qlist.sip
===================================================================
--- python-qt4-4.7.2.orig/sip/QtCore/qlist.sip 2010-03-17 19:29:26.000000000 +0100
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2013-12-28 18:46 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-06-16 1:41 [gentoo-commits] gentoo-x86 commit in dev-python/PyQt4/files: PyQt4-4.7.3-qreal_float_support.patch TomAs Touceda (chiiph)
-- strict thread matches above, loose matches on Subject: below --
2013-12-28 18:46 Steve Arnold (nerdboy)
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox