]> granicus.if.org Git - python/commitdiff
Issue #23629: Fix the default __sizeof__ implementation for variable-sized objects.
authorAntoine Pitrou <solipsis@pitrou.net>
Tue, 10 Mar 2015 21:35:24 +0000 (22:35 +0100)
committerAntoine Pitrou <solipsis@pitrou.net>
Tue, 10 Mar 2015 21:35:24 +0000 (22:35 +0100)
1  2 
Lib/test/test_buffer.py
Lib/test/test_sys.py
Misc/NEWS
Objects/bytesobject.c
Objects/tupleobject.c
Objects/typeobject.c

index 0976fa9e34d813c4ab50e7a4fe320c0c9b042562,e84f3e4e2639bd0aaa8c6413b41ac3a016fb738b..d921a5aacc93bb20c11a36f4dc56959e3e342c1b
@@@ -2462,6 -2449,21 +2462,21 @@@ class TestBufferProtocol(unittest.TestC
              self.assertEqual(m.tobytes(), b'')
              self.assertEqual(m.tolist(), [])
  
 -        base_struct = 'Pnin 2P2n2i5P 3cP'
+     check_sizeof = support.check_sizeof
+     def test_memoryview_sizeof(self):
+         check = self.check_sizeof
+         vsize = support.calcvobjsize
++        base_struct = 'Pnin 2P2n2i5P P'
+         per_dim = '3n'
+         items = list(range(8))
+         check(memoryview(b''), vsize(base_struct + 1 * per_dim))
+         a = ndarray(items, shape=[2, 4], format="b")
+         check(memoryview(a), vsize(base_struct + 2 * per_dim))
+         a = ndarray(items, shape=[2, 2, 2], format="b")
+         check(memoryview(a), vsize(base_struct + 3 * per_dim))
      def test_memoryview_struct_module(self):
  
          class INT(object):
Simple merge
diff --cc Misc/NEWS
Simple merge
index b015974f7c30f7a4668a9c5f03e2fa05e129e359,b9b49acebec514d9d10407d46c69f65fc6db7bbe..2ceba486f00866fef689fff420d86c580c29b9d6
@@@ -3556,10 -2431,10 +3520,9 @@@ bytes_methods[] = 
      {"swapcase", (PyCFunction)stringlib_swapcase, METH_NOARGS,
       _Py_swapcase__doc__},
      {"title", (PyCFunction)stringlib_title, METH_NOARGS, _Py_title__doc__},
 -    {"translate", (PyCFunction)bytes_translate, METH_VARARGS,
 -     translate__doc__},
 +    BYTES_TRANSLATE_METHODDEF
      {"upper", (PyCFunction)stringlib_upper, METH_NOARGS, _Py_upper__doc__},
      {"zfill", (PyCFunction)stringlib_zfill, METH_VARARGS, zfill__doc__},
-     BYTES_SIZEOF_METHODDEF
      {NULL,     NULL}                         /* sentinel */
  };
  
Simple merge
Simple merge