11
11
#include "numpy/arrayobject.h"
12
12
#include "numpy/ndarraytypes.h"
13
13
#include "numpy/dtype_api.h"
14
- #include "numpy/_public_dtype_api_table.h" // not included in dtype_api.h
15
14
16
15
#include "scalar.h"
17
16
#include "casts.h"
@@ -21,7 +20,6 @@ static inline int quad_load(Sleef_quad *x, char *data_ptr)
21
20
{
22
21
if (data_ptr == NULL || x == NULL )
23
22
{
24
- PyErr_SetString (PyExc_ValueError , "Invalid memory location" );
25
23
return -1 ;
26
24
}
27
25
* x = * (Sleef_quad * )data_ptr ;
@@ -32,7 +30,6 @@ static inline int quad_store(char *data_ptr, Sleef_quad x)
32
30
{
33
31
if (data_ptr == NULL )
34
32
{
35
- PyErr_SetString (PyExc_ValueError , "Invalid memory location" );
36
33
return -1 ;
37
34
}
38
35
* (Sleef_quad * )data_ptr = x ;
@@ -47,7 +44,6 @@ QuadPrecDTypeObject * new_quaddtype_instance(void)
47
44
}
48
45
new -> base .elsize = sizeof (Sleef_quad );
49
46
new -> base .alignment = _Alignof(Sleef_quad );
50
- new -> base .flags |= NPY_NEEDS_INIT ; // Indicates memory for this data-type must be initialized (set to 0) on creation.
51
47
52
48
return new ;
53
49
}
@@ -114,6 +110,9 @@ static int quadprec_setitem(QuadPrecDTypeObject *descr, PyObject *obj, char *dat
114
110
if (quad_store (dataptr , value -> quad .value ) < 0 )
115
111
{
116
112
Py_DECREF (value );
113
+ char error_msg [100 ];
114
+ snprintf (error_msg , sizeof (error_msg ), "Invalid memory location %p" , (void * )dataptr );
115
+ PyErr_SetString (PyExc_ValueError , error_msg );
117
116
return -1 ;
118
117
}
119
118
@@ -131,6 +130,9 @@ static PyObject * quadprec_getitem(QuadPrecDTypeObject *descr, char *dataptr)
131
130
if (quad_load (& new -> quad .value , dataptr ) < 0 )
132
131
{
133
132
Py_DECREF (new );
133
+ char error_msg [100 ];
134
+ snprintf (error_msg , sizeof (error_msg ), "Invalid memory location %p" , (void * )dataptr );
135
+ PyErr_SetString (PyExc_ValueError , error_msg );
134
136
return NULL ;
135
137
}
136
138
return (PyObject * )new ;
0 commit comments