give TypeError when trying to set T_STRING_INPLACE

This commit is contained in:
Benjamin Peterson 2010-04-03 01:28:57 +00:00
parent 931190b4f5
commit 1c7c11ef61
4 changed files with 27 additions and 5 deletions

View file

@ -172,7 +172,7 @@ PyMember_SetOne(char *addr, PyMemberDef *l, PyObject *v)
addr += l->offset;
if ((l->flags & READONLY) || l->type == T_STRING)
if ((l->flags & READONLY))
{
PyErr_SetString(PyExc_TypeError, "readonly attribute");
return -1;
@ -329,6 +329,10 @@ PyMember_SetOne(char *addr, PyMemberDef *l, PyObject *v)
return -1;
}
break;
case T_STRING:
case T_STRING_INPLACE:
PyErr_SetString(PyExc_TypeError, "readonly attribute");
return -1;
#ifdef HAVE_LONG_LONG
case T_LONGLONG:{
PY_LONG_LONG value;