diff options
author | Sebastian Berg <sebastian@sipsolutions.net> | 2020-05-29 15:36:20 -0500 |
---|---|---|
committer | Sebastian Berg <sebastian@sipsolutions.net> | 2020-07-08 18:13:06 -0500 |
commit | ca09045c67db1c6009a39ad9adec035264922b49 (patch) | |
tree | 85113ecd178bfcc93b3ea304101dd2512a9cc3d5 | |
parent | ad31a3291b6e37712e153fa93799e9f35f710c49 (diff) | |
download | numpy-ca09045c67db1c6009a39ad9adec035264922b49.tar.gz |
BUG: Make static declaration safe (may be an issue on msvc mostly)
-rw-r--r-- | numpy/core/src/multiarray/abstractdtypes.c | 35 |
1 files changed, 17 insertions, 18 deletions
diff --git a/numpy/core/src/multiarray/abstractdtypes.c b/numpy/core/src/multiarray/abstractdtypes.c index 96b37c14d..8793222f8 100644 --- a/numpy/core/src/multiarray/abstractdtypes.c +++ b/numpy/core/src/multiarray/abstractdtypes.c @@ -66,15 +66,22 @@ discover_descriptor_from_pycomplex( NPY_NO_EXPORT int initialize_abstract_dtypes_and_map_others() { + PyArrayAbstractObjDTypeMeta_Type.tp_base = &PyArrayDTypeMeta_Type; if (PyType_Ready(&PyArrayAbstractObjDTypeMeta_Type) < 0) { return -1; } + ((PyTypeObject *)&PyArray_PyIntAbstractDType)->tp_base = &PyArrayDTypeMeta_Type; + PyArray_PyIntAbstractDType.scalar_type = &PyLong_Type; if (PyType_Ready((PyTypeObject *)&PyArray_PyIntAbstractDType) < 0) { return -1; } + ((PyTypeObject *)&PyArray_PyFloatAbstractDType)->tp_base = &PyArrayDTypeMeta_Type; + PyArray_PyFloatAbstractDType.scalar_type = &PyFloat_Type; if (PyType_Ready((PyTypeObject *)&PyArray_PyFloatAbstractDType) < 0) { return -1; } + ((PyTypeObject *)&PyArray_PyComplexAbstractDType)->tp_base = &PyArrayDTypeMeta_Type; + PyArray_PyComplexAbstractDType.scalar_type = &PyComplex_Type; if (PyType_Ready((PyTypeObject *)&PyArray_PyComplexAbstractDType) < 0) { return -1; } @@ -119,51 +126,43 @@ initialize_abstract_dtypes_and_map_others() } + +/* Note: This is currently largely not used, but will be required eventually. */ +NPY_NO_EXPORT PyTypeObject PyArrayAbstractObjDTypeMeta_Type = { + PyVarObject_HEAD_INIT(NULL, 0) + .tp_name = "numpy._AbstractObjDTypeMeta", + .tp_basicsize = sizeof(PyArray_DTypeMeta), + .tp_flags = Py_TPFLAGS_DEFAULT, + .tp_doc = "Helper MetaClass for value based casting AbstractDTypes.", +}; + NPY_NO_EXPORT PyArray_DTypeMeta PyArray_PyIntAbstractDType = {{{ PyVarObject_HEAD_INIT(&PyArrayAbstractObjDTypeMeta_Type, 0) .tp_basicsize = sizeof(PyArray_DTypeMeta), .tp_name = "numpy._PyIntBaseAbstractDType", - .tp_base = &PyArrayDescr_Type, },}, .abstract = 1, - .scalar_type = &PyLong_Type, .discover_descr_from_pyobject = discover_descriptor_from_pyint, .kind = 'i', }; - NPY_NO_EXPORT PyArray_DTypeMeta PyArray_PyFloatAbstractDType = {{{ PyVarObject_HEAD_INIT(&PyArrayAbstractObjDTypeMeta_Type, 0) .tp_basicsize = sizeof(PyArray_DTypeMeta), .tp_name = "numpy._PyFloatBaseAbstractDType", - .tp_base = &PyArrayDescr_Type, },}, .abstract = 1, - .scalar_type = &PyLong_Type, .discover_descr_from_pyobject = discover_descriptor_from_pyfloat, .kind = 'f', }; - NPY_NO_EXPORT PyArray_DTypeMeta PyArray_PyComplexAbstractDType = {{{ PyVarObject_HEAD_INIT(&PyArrayAbstractObjDTypeMeta_Type, 0) .tp_basicsize = sizeof(PyArray_DTypeMeta), .tp_name = "numpy._PyComplexBaseAbstractDType", - .tp_base = &PyArrayDescr_Type, },}, .abstract = 1, - .scalar_type = &PyLong_Type, .discover_descr_from_pyobject = discover_descriptor_from_pycomplex, .kind = 'c', }; - -/* Note: This is currently largely not used, but will be required eventually. */ -NPY_NO_EXPORT PyTypeObject PyArrayAbstractObjDTypeMeta_Type = { - PyVarObject_HEAD_INIT(NULL, 0) - .tp_name = "numpy._AbstractObjDTypeMeta", - .tp_basicsize = sizeof(PyArray_DTypeMeta), - .tp_flags = Py_TPFLAGS_DEFAULT, - .tp_doc = "Helper MetaClass for value based casting AbstractDTypes.", - .tp_base = &PyArrayDTypeMeta_Type, -}; |