diff options
author | Victor Stinner <victor.stinner@haypocalc.com> | 2010-03-13 00:19:17 (GMT) |
---|---|---|
committer | Victor Stinner <victor.stinner@haypocalc.com> | 2010-03-13 00:19:17 (GMT) |
commit | 08b36bdab44eaf6fb041780f6be967105e8c722c (patch) | |
tree | 550abef45d8b5edf9f26b51441928c65a22c1c4d /Objects | |
parent | 6540a82a40d3a8da418318b9e8a6d090f35a5a92 (diff) | |
download | cpython-08b36bdab44eaf6fb041780f6be967105e8c722c.zip cpython-08b36bdab44eaf6fb041780f6be967105e8c722c.tar.gz cpython-08b36bdab44eaf6fb041780f6be967105e8c722c.tar.bz2 |
Merged revisions 78886 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r78886 | victor.stinner | 2010-03-13 01:13:22 +0100 (sam., 13 mars 2010) | 2 lines
Issue #7818: set().test_c_api() doesn't expect a set('abc'), modify the set.
........
Diffstat (limited to 'Objects')
-rw-r--r-- | Objects/setobject.c | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/Objects/setobject.c b/Objects/setobject.c index 7ea8e32..c3eabf5 100644 --- a/Objects/setobject.c +++ b/Objects/setobject.c @@ -2360,11 +2360,25 @@ test_c_api(PySetObject *so) PyObject *elem=NULL, *dup=NULL, *t, *f, *dup2, *x; PyObject *ob = (PyObject *)so; long hash; + PyObject *str; - /* Verify preconditions and exercise type/size checks */ + /* Verify preconditions */ assert(PyAnySet_Check(ob)); assert(PyAnySet_CheckExact(ob)); assert(!PyFrozenSet_CheckExact(ob)); + + /* so.clear(); so |= set("abc"); */ + str = PyUnicode_FromString("abc"); + if (str == NULL) + return NULL; + set_clear_internal(so); + if (set_update_internal(so, str) == -1) { + Py_DECREF(str); + return NULL; + } + Py_DECREF(str); + + /* Exercise type/size checks */ assert(PySet_Size(ob) == 3); assert(PySet_GET_SIZE(ob) == 3); |