diff Modules/arraymodule.c @ 41359:f764a7552162 legacy-trunk

SF #1693079: Cannot save empty array in shelve
author Raymond Hettinger <python@rcn.com>
date Mon, 02 Apr 2007 17:29:30 +0000
parents 77e0f4718a7c
children 4a03860ae08b
line wrap: on
line diff
--- a/Modules/arraymodule.c	Sun Apr 01 23:31:30 2007 +0000
+++ b/Modules/arraymodule.c	Mon Apr 02 17:29:30 2007 +0000
@@ -1147,12 +1147,19 @@
 		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;
 }