#4170: Fix segfault when pickling a defauldict object.

The 2.x dict.iteritems() returns an iterator,
whereas the 3.0 dict.items() returns a "view",
which is iterable, but not an iterator with its __next__ method.

Patch by Hirokazu Yamamoto.
diff --git a/Lib/test/test_defaultdict.py b/Lib/test/test_defaultdict.py
index 49519ab..00bd9dc 100644
--- a/Lib/test/test_defaultdict.py
+++ b/Lib/test/test_defaultdict.py
@@ -2,6 +2,7 @@
 
 import os
 import copy
+import pickle
 import tempfile
 import unittest
 from test import support
@@ -164,6 +165,13 @@
         finally:
             os.remove(tfn)
 
+    def test_pickleing(self):
+        d = defaultdict(int)
+        d[1]
+        for proto in range(pickle.HIGHEST_PROTOCOL + 1):
+            s = pickle.dumps(d, proto)
+            o = pickle.loads(s)
+            self.assertEqual(d, o)
 
 def test_main():
     support.run_unittest(TestDefaultDict)