summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Berg <sebastian@sipsolutions.net>2020-05-29 15:36:20 -0500
committerSebastian Berg <sebastian@sipsolutions.net>2020-07-08 18:13:06 -0500
commitca09045c67db1c6009a39ad9adec035264922b49 (patch)
tree85113ecd178bfcc93b3ea304101dd2512a9cc3d5
parentad31a3291b6e37712e153fa93799e9f35f710c49 (diff)
downloadnumpy-ca09045c67db1c6009a39ad9adec035264922b49.tar.gz
BUG: Make static declaration safe (may be an issue on msvc mostly)
-rw-r--r--numpy/core/src/multiarray/abstractdtypes.c35
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,
-};