@@ -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