Commit ba195179 authored by Stefan Behnel's avatar Stefan Behnel

Make underscore number parsing independent of "CYTHON_USE_TYPE_SLOTS" guard.

parent b738fd8c
......@@ -601,23 +601,21 @@ static double __Pyx__PyObject_AsDouble(PyObject* obj); /* proto */
//@requires: ObjectHandling.c::PyObjectCallOneArg
static double __Pyx__PyObject_AsDouble(PyObject* obj) {
if (PyUnicode_CheckExact(obj)) {
return __Pyx_PyUnicode_AsDouble(obj);
} else if (PyBytes_CheckExact(obj)) {
return __Pyx_PyBytes_AsDouble(obj);
} else if (PyByteArray_CheckExact(obj)) {
return __Pyx_PyByteArray_AsDouble(obj);
} else {
PyObject* float_value;
#if !CYTHON_USE_TYPE_SLOTS
float_value = PyNumber_Float(obj); if ((0)) goto bad;
// avoid "unused" warnings
(void)__Pyx_PyObject_CallOneArg;
(void)__Pyx_PyBytes_AsDouble;
(void)__Pyx_PyByteArray_AsDouble;
(void)__Pyx_PyUnicode_AsDouble;
#else
PyNumberMethods *nb = Py_TYPE(obj)->tp_as_number;
if (PyUnicode_CheckExact(obj)) {
return __Pyx_PyUnicode_AsDouble(obj);
} else if (PyBytes_CheckExact(obj)) {
return __Pyx_PyBytes_AsDouble(obj);
} else if (PyByteArray_CheckExact(obj)) {
return __Pyx_PyByteArray_AsDouble(obj);
} else if (likely(nb) && likely(nb->nb_float)) {
if (likely(nb) && likely(nb->nb_float)) {
float_value = nb->nb_float(obj);
if (likely(float_value) && unlikely(!PyFloat_Check(float_value))) {
__Pyx_TypeName float_value_type_name = __Pyx_PyType_GetName(Py_TYPE(float_value));
......@@ -637,6 +635,7 @@ static double __Pyx__PyObject_AsDouble(PyObject* obj) {
Py_DECREF(float_value);
return value;
}
}
bad:
return (double)-1;
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment