diff options
author | Raymond Hettinger <python@rcn.com> | 2007-04-02 17:29:30 (GMT) |
---|---|---|
committer | Raymond Hettinger <python@rcn.com> | 2007-04-02 17:29:30 (GMT) |
commit | e6e660bde384b21ee41a5b9f6dbbd2bc1bb2ae6b (patch) | |
tree | c5e3fc664ea594af562e90a49537f7e0219e7fa3 /Modules | |
parent | 5447850f6fec4445c0a2a84a5364e7c52940e8c9 (diff) | |
download | cpython-e6e660bde384b21ee41a5b9f6dbbd2bc1bb2ae6b.zip cpython-e6e660bde384b21ee41a5b9f6dbbd2bc1bb2ae6b.tar.gz cpython-e6e660bde384b21ee41a5b9f6dbbd2bc1bb2ae6b.tar.bz2 |
SF #1693079: Cannot save empty array in shelve
Diffstat (limited to 'Modules')
-rw-r--r-- | Modules/arraymodule.c | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/Modules/arraymodule.c b/Modules/arraymodule.c index 210ada6..0aeb64e 100644 --- a/Modules/arraymodule.c +++ b/Modules/arraymodule.c @@ -1147,12 +1147,19 @@ array_reduce(arrayobject *array) dict = Py_None; Py_INCREF(dict); } - result = Py_BuildValue("O(cs#)O", - array->ob_type, - array->ob_descr->typecode, - array->ob_item, - array->ob_size * array->ob_descr->itemsize, - dict); + if (array->ob_size > 0) { + result = Py_BuildValue("O(cs#)O", + array->ob_type, + array->ob_descr->typecode, + array->ob_item, + array->ob_size * array->ob_descr->itemsize, + dict); + } else { + result = Py_BuildValue("O(c)O", + array->ob_type, + array->ob_descr->typecode, + dict); + } Py_DECREF(dict); return result; } |