@@ -864,9 +864,16 @@ static int
864864bytearray_ass_subscript (PyObject  * op , PyObject  * index , PyObject  * values )
865865{
866866    int  ret ;
867-     Py_BEGIN_CRITICAL_SECTION (op );
868-     ret  =  bytearray_ass_subscript_lock_held (op , index , values );
869-     Py_END_CRITICAL_SECTION ();
867+     if  (values  !=  NULL  &&  PyByteArray_Check (values )) {
868+         Py_BEGIN_CRITICAL_SECTION2 (op , values );
869+         ret  =  bytearray_ass_subscript_lock_held (op , index , values );
870+         Py_END_CRITICAL_SECTION2 ();
871+     }
872+     else  {
873+         Py_BEGIN_CRITICAL_SECTION (op );
874+         ret  =  bytearray_ass_subscript_lock_held (op , index , values );
875+         Py_END_CRITICAL_SECTION ();
876+     }
870877    return  ret ;
871878}
872879
@@ -2751,9 +2758,16 @@ static PyObject *
27512758bytearray_mod (PyObject  * v , PyObject  * w )
27522759{
27532760    PyObject  * ret ;
2754-     Py_BEGIN_CRITICAL_SECTION (v );
2755-     ret  =  bytearray_mod_lock_held (v , w );
2756-     Py_END_CRITICAL_SECTION ();
2761+     if  (PyByteArray_Check (w )) {
2762+         Py_BEGIN_CRITICAL_SECTION2 (v , w );
2763+         ret  =  bytearray_mod_lock_held (v , w );
2764+         Py_END_CRITICAL_SECTION2 ();
2765+     }
2766+     else  {
2767+         Py_BEGIN_CRITICAL_SECTION (v );
2768+         ret  =  bytearray_mod_lock_held (v , w );
2769+         Py_END_CRITICAL_SECTION ();
2770+     }
27572771    return  ret ;
27582772}
27592773
0 commit comments