|
845 | 845 | return !(*v == -1 && PyErr_Occurred()); |
846 | 846 | } |
847 | 847 |
|
848 | | - if (PyComplex_Check(obj)) |
| 848 | + if (PyComplex_Check(obj)) { |
| 849 | + PyErr_Clear(); |
849 | 850 | tmp = PyObject_GetAttrString(obj,\"real\"); |
850 | | - else if (PyBytes_Check(obj) || PyUnicode_Check(obj)) |
| 851 | + } |
| 852 | + else if (PyBytes_Check(obj) || PyUnicode_Check(obj)) { |
851 | 853 | /*pass*/; |
852 | | - else if (PySequence_Check(obj)) |
| 854 | + } |
| 855 | + else if (PySequence_Check(obj)) { |
| 856 | + PyErr_Clear(); |
853 | 857 | tmp = PySequence_GetItem(obj, 0); |
| 858 | + } |
| 859 | +
|
854 | 860 | if (tmp) { |
855 | | - PyErr_Clear(); |
856 | 861 | if (int_from_pyobj(v, tmp, errmess)) { |
857 | 862 | Py_DECREF(tmp); |
858 | 863 | return 1; |
859 | 864 | } |
860 | 865 | Py_DECREF(tmp); |
861 | 866 | } |
| 867 | +
|
862 | 868 | { |
863 | 869 | PyObject* err = PyErr_Occurred(); |
864 | 870 | if (err == NULL) { |
|
888 | 894 | return !(*v == -1 && PyErr_Occurred()); |
889 | 895 | } |
890 | 896 |
|
891 | | - if (PyComplex_Check(obj)) |
| 897 | + if (PyComplex_Check(obj)) { |
| 898 | + PyErr_Clear(); |
892 | 899 | tmp = PyObject_GetAttrString(obj,\"real\"); |
893 | | - else if (PyBytes_Check(obj) || PyUnicode_Check(obj)) |
| 900 | + } |
| 901 | + else if (PyBytes_Check(obj) || PyUnicode_Check(obj)) { |
894 | 902 | /*pass*/; |
895 | | - else if (PySequence_Check(obj)) |
896 | | - tmp = PySequence_GetItem(obj,0); |
| 903 | + } |
| 904 | + else if (PySequence_Check(obj)) { |
| 905 | + PyErr_Clear(); |
| 906 | + tmp = PySequence_GetItem(obj, 0); |
| 907 | + } |
897 | 908 |
|
898 | 909 | if (tmp) { |
899 | | - PyErr_Clear(); |
900 | 910 | if (long_from_pyobj(v, tmp, errmess)) { |
901 | 911 | Py_DECREF(tmp); |
902 | 912 | return 1; |
|
934 | 944 | return !(*v == -1 && PyErr_Occurred()); |
935 | 945 | } |
936 | 946 |
|
937 | | - if (PyComplex_Check(obj)) |
| 947 | + if (PyComplex_Check(obj)) { |
| 948 | + PyErr_Clear(); |
938 | 949 | tmp = PyObject_GetAttrString(obj,\"real\"); |
939 | | - else if (PyBytes_Check(obj) || PyUnicode_Check(obj)) |
| 950 | + } |
| 951 | + else if (PyBytes_Check(obj) || PyUnicode_Check(obj)) { |
940 | 952 | /*pass*/; |
941 | | - else if (PySequence_Check(obj)) |
942 | | - tmp = PySequence_GetItem(obj,0); |
943 | | - if (tmp) { |
| 953 | + } |
| 954 | + else if (PySequence_Check(obj)) { |
944 | 955 | PyErr_Clear(); |
| 956 | + tmp = PySequence_GetItem(obj, 0); |
| 957 | + } |
| 958 | +
|
| 959 | + if (tmp) { |
945 | 960 | if (long_long_from_pyobj(v, tmp, errmess)) { |
946 | 961 | Py_DECREF(tmp); |
947 | 962 | return 1; |
|
1001 | 1016 | Py_DECREF(tmp); |
1002 | 1017 | return !(*v == -1.0 && PyErr_Occurred()); |
1003 | 1018 | } |
1004 | | - if (PyComplex_Check(obj)) |
| 1019 | +
|
| 1020 | + if (PyComplex_Check(obj)) { |
| 1021 | + PyErr_Clear(); |
1005 | 1022 | tmp = PyObject_GetAttrString(obj,\"real\"); |
1006 | | - else if (PyBytes_Check(obj) || PyUnicode_Check(obj)) |
| 1023 | + } |
| 1024 | + else if (PyBytes_Check(obj) || PyUnicode_Check(obj)) { |
1007 | 1025 | /*pass*/; |
1008 | | - else if (PySequence_Check(obj)) |
1009 | | - tmp = PySequence_GetItem(obj,0); |
1010 | | - if (tmp) { |
| 1026 | + } |
| 1027 | + else if (PySequence_Check(obj)) { |
1011 | 1028 | PyErr_Clear(); |
| 1029 | + tmp = PySequence_GetItem(obj, 0); |
| 1030 | + } |
| 1031 | +
|
| 1032 | + if (tmp) { |
1012 | 1033 | if (double_from_pyobj(v,tmp,errmess)) {Py_DECREF(tmp); return 1;} |
1013 | 1034 | Py_DECREF(tmp); |
1014 | 1035 | } |
|
0 commit comments