]> granicus.if.org Git - python/commitdiff
Issue #14779: Get sizeof(void *) directly rather than relying on sysconfig.
authorStefan Krah <skrah@bytereef.org>
Wed, 16 May 2012 18:41:56 +0000 (20:41 +0200)
committerStefan Krah <skrah@bytereef.org>
Wed, 16 May 2012 18:41:56 +0000 (20:41 +0200)
Lib/test/test_buffer.py
Modules/_testbuffer.c

index 258c850a5a87ae3ec2077280c890e553305d98fd..b6cb3acdba0273799ebc4553405785f09ac3e9c2 100644 (file)
@@ -747,10 +747,8 @@ if SHORT_TEST:
 class TestBufferProtocol(unittest.TestCase):
 
     def setUp(self):
-        self.sizeof_void_p = get_config_var('SIZEOF_VOID_P') \
-                                if sys.platform != 'darwin' else None
-        if not self.sizeof_void_p:
-            self.sizeof_void_p = 8 if sys.maxsize > 2**32 else 4
+        # The suboffsets tests need sizeof(void *).
+        self.sizeof_void_p = get_sizeof_void_p()
 
     def verify(self, result, obj=-1,
                      itemsize={1}, fmt=-1, readonly={1},
index cc4aea86fb5a735636013334dc170022d4b4c0eb..1ff685c17628511618b25a472b9779b248d11137 100644 (file)
@@ -2337,6 +2337,12 @@ out:
     return ret;
 }
 
+static PyObject *
+get_sizeof_void_p(PyObject *self)
+{
+    return PyLong_FromSize_t(sizeof(void *));
+}
+
 static char
 get_ascii_order(PyObject *order)
 {
@@ -2726,6 +2732,7 @@ static PyTypeObject StaticArray_Type = {
 static struct PyMethodDef _testbuffer_functions[] = {
     {"slice_indices", slice_indices, METH_VARARGS, NULL},
     {"get_pointer", get_pointer, METH_VARARGS, NULL},
+    {"get_sizeof_void_p", (PyCFunction)get_sizeof_void_p, METH_NOARGS, NULL},
     {"get_contiguous", get_contiguous, METH_VARARGS, NULL},
     {"is_contiguous", is_contiguous, METH_VARARGS, NULL},
     {"cmp_contig", cmp_contig, METH_VARARGS, NULL},