@@ -354,7 +354,8 @@ NPY_NO_EXPORT void *
354
354
PyDataMem_UserNEW (size_t size , PyObject * mem_handler )
355
355
{
356
356
void * result ;
357
- PyDataMem_Handler * handler = (PyDataMem_Handler * ) PyCapsule_GetPointer (mem_handler , "mem_handler" );
357
+ PyDataMem_Handler * handler = (PyDataMem_Handler * ) PyCapsule_GetPointer (
358
+ mem_handler , MEM_HANDLER_CAPSULE_NAME );
358
359
if (handler == NULL ) {
359
360
return NULL ;
360
361
}
@@ -368,7 +369,8 @@ NPY_NO_EXPORT void *
368
369
PyDataMem_UserNEW_ZEROED (size_t nmemb , size_t size , PyObject * mem_handler )
369
370
{
370
371
void * result ;
371
- PyDataMem_Handler * handler = (PyDataMem_Handler * ) PyCapsule_GetPointer (mem_handler , "mem_handler" );
372
+ PyDataMem_Handler * handler = (PyDataMem_Handler * ) PyCapsule_GetPointer (
373
+ mem_handler , MEM_HANDLER_CAPSULE_NAME );
372
374
if (handler == NULL ) {
373
375
return NULL ;
374
376
}
@@ -381,7 +383,8 @@ PyDataMem_UserNEW_ZEROED(size_t nmemb, size_t size, PyObject *mem_handler)
381
383
NPY_NO_EXPORT void
382
384
PyDataMem_UserFREE (void * ptr , size_t size , PyObject * mem_handler )
383
385
{
384
- PyDataMem_Handler * handler = (PyDataMem_Handler * ) PyCapsule_GetPointer (mem_handler , "mem_handler" );
386
+ PyDataMem_Handler * handler = (PyDataMem_Handler * ) PyCapsule_GetPointer (
387
+ mem_handler , MEM_HANDLER_CAPSULE_NAME );
385
388
if (handler == NULL ) {
386
389
WARN_NO_RETURN (PyExc_RuntimeWarning ,
387
390
"Could not get pointer to 'mem_handler' from PyCapsule" );
@@ -395,7 +398,8 @@ NPY_NO_EXPORT void *
395
398
PyDataMem_UserRENEW (void * ptr , size_t size , PyObject * mem_handler )
396
399
{
397
400
void * result ;
398
- PyDataMem_Handler * handler = (PyDataMem_Handler * ) PyCapsule_GetPointer (mem_handler , "mem_handler" );
401
+ PyDataMem_Handler * handler = (PyDataMem_Handler * ) PyCapsule_GetPointer (
402
+ mem_handler , MEM_HANDLER_CAPSULE_NAME );
399
403
if (handler == NULL ) {
400
404
return NULL ;
401
405
}
@@ -427,6 +431,10 @@ PyDataMem_SetHandler(PyObject *handler)
427
431
if (handler == NULL ) {
428
432
handler = PyDataMem_DefaultHandler ;
429
433
}
434
+ if (!PyCapsule_IsValid (handler , MEM_HANDLER_CAPSULE_NAME )) {
435
+ PyErr_SetString (PyExc_ValueError , "Capsule must be named 'mem_handler'" );
436
+ return NULL ;
437
+ }
430
438
token = PyContextVar_Set (current_handler , handler );
431
439
if (token == NULL ) {
432
440
Py_DECREF (old_handler );
@@ -477,7 +485,8 @@ get_handler_name(PyObject *NPY_UNUSED(self), PyObject *args)
477
485
return NULL ;
478
486
}
479
487
}
480
- handler = (PyDataMem_Handler * ) PyCapsule_GetPointer (mem_handler , "mem_handler" );
488
+ handler = (PyDataMem_Handler * ) PyCapsule_GetPointer (
489
+ mem_handler , MEM_HANDLER_CAPSULE_NAME );
481
490
if (handler == NULL ) {
482
491
Py_DECREF (mem_handler );
483
492
return NULL ;
@@ -514,7 +523,8 @@ get_handler_version(PyObject *NPY_UNUSED(self), PyObject *args)
514
523
return NULL ;
515
524
}
516
525
}
517
- handler = (PyDataMem_Handler * ) PyCapsule_GetPointer (mem_handler , "mem_handler" );
526
+ handler = (PyDataMem_Handler * ) PyCapsule_GetPointer (
527
+ mem_handler , MEM_HANDLER_CAPSULE_NAME );
518
528
if (handler == NULL ) {
519
529
Py_DECREF (mem_handler );
520
530
return NULL ;
0 commit comments