@@ -635,12 +635,15 int PythonQtConv::PyObjGetInt(PyObject* val, bool strict, bool &ok) { | |||
|
635 | 635 | qint64 PythonQtConv::PyObjGetLongLong(PyObject* val, bool strict, bool &ok) { |
|
636 | 636 | qint64 d = 0; |
|
637 | 637 | ok = true; |
|
638 |
if ( |
|
|
638 | if (val->ob_type == &PyInt_Type) { | |
|
639 | 639 | d = PyInt_AS_LONG(val); |
|
640 | 640 | } else if (val->ob_type == &PyLong_Type) { |
|
641 | 641 | d = PyLong_AsLongLong(val); |
|
642 | 642 | } else if (!strict) { |
|
643 | if (val->ob_type == &PyFloat_Type) { | |
|
643 | if (PyObject_TypeCheck(val, &PyInt_Type)) { | |
|
644 | // support for derived int classes, e.g. for our enums | |
|
645 | d = PyInt_AS_LONG(val); | |
|
646 | } else if (val->ob_type == &PyFloat_Type) { | |
|
644 | 647 | d = floor(PyFloat_AS_DOUBLE(val)); |
|
645 | 648 | } else if (val == Py_False) { |
|
646 | 649 | d = 0; |
@@ -663,7 +666,10 quint64 PythonQtConv::PyObjGetULongLong(PyObject* val, bool strict, bool &ok) { | |||
|
663 | 666 | } else if (val->ob_type == &PyLong_Type) { |
|
664 | 667 | d = PyLong_AsLongLong(val); |
|
665 | 668 | } else if (!strict) { |
|
666 | if (val->ob_type == &PyFloat_Type) { | |
|
669 | if (PyObject_TypeCheck(val, &PyInt_Type)) { | |
|
670 | // support for derived int classes, e.g. for our enums | |
|
671 | d = PyInt_AS_LONG(val); | |
|
672 | } else if (val->ob_type == &PyFloat_Type) { | |
|
667 | 673 | d = floor(PyFloat_AS_DOUBLE(val)); |
|
668 | 674 | } else if (val == Py_False) { |
|
669 | 675 | d = 0; |
General Comments 0
You need to be logged in to leave comments.
Login now