@@ -3356,14 +3356,13 @@ _PyCData_set(ctypes_state *st,
33563356 CDataObject * dst , PyObject * type , SETFUNC setfunc , PyObject * value ,
33573357 Py_ssize_t size , char * ptr )
33583358{
3359+ _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED (dst );
33593360 CDataObject * src ;
33603361 int err ;
33613362
33623363 if (setfunc ) {
33633364 PyObject * res ;
3364- Py_BEGIN_CRITICAL_SECTION (dst );
33653365 res = setfunc (ptr , value , size );
3366- Py_END_CRITICAL_SECTION ();
33673366 return res ;
33683367 }
33693368 if (!CDataObject_Check (st , value )) {
@@ -3373,9 +3372,7 @@ _PyCData_set(ctypes_state *st,
33733372 }
33743373 if (info && info -> setfunc ) {
33753374 PyObject * res ;
3376- Py_BEGIN_CRITICAL_SECTION (dst );
33773375 res = info -> setfunc (ptr , value , size );
3378- Py_END_CRITICAL_SECTION ();
33793376 return res ;
33803377 }
33813378 /*
@@ -3397,9 +3394,7 @@ _PyCData_set(ctypes_state *st,
33973394 Py_DECREF (ob );
33983395 return result ;
33993396 } else if (value == Py_None && PyCPointerTypeObject_Check (st , type )) {
3400- Py_BEGIN_CRITICAL_SECTION (dst );
34013397 * (void * * )ptr = NULL ;
3402- Py_END_CRITICAL_SECTION ();
34033398 Py_RETURN_NONE ;
34043399 } else {
34053400 PyErr_Format (PyExc_TypeError ,
@@ -3417,11 +3412,6 @@ _PyCData_set(ctypes_state *st,
34173412 if (err ) {
34183413 Py_BEGIN_CRITICAL_SECTION (src );
34193414 memcpy (ptr , src -> b_ptr , size );
3420-
3421- if (PyCPointerTypeObject_Check (st , type )) {
3422- /* XXX */
3423- }
3424-
34253415 value = GetKeepedObjects (src );
34263416 Py_END_CRITICAL_SECTION ();
34273417 if (value == NULL )
@@ -3485,6 +3475,8 @@ PyCData_set(ctypes_state *st,
34853475 PyObject * dst , PyObject * type , SETFUNC setfunc , PyObject * value ,
34863476 Py_ssize_t index , Py_ssize_t size , char * ptr )
34873477{
3478+ _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED (dst );
3479+
34883480 CDataObject * mem = (CDataObject * )dst ;
34893481 PyObject * result ;
34903482
0 commit comments