[Python-checkins] r43115 - in python/trunk: Lib/ctypes/__init__.py Lib/ctypes/test/test_byteswap.py Lib/ctypes/test/test_cfuncs.py Lib/ctypes/test/test_loading.py Lib/ctypes/test/test_sizes.py Modules/_ctypes/_ctypes.c Modules/_ctypes/callproc.c
Neal Norwitz
nnorwitz at gmail.com
Sat Mar 18 04:12:13 CET 2006
On 3/17/06, thomas.heller <python-checkins at python.org> wrote:
> Author: thomas.heller
> Date: Fri Mar 17 16:52:58 2006
> New Revision: 43115
>
> @@ -198,17 +199,20 @@
> pass
> self.assertRaises(TypeError, setattr, S, "_fields_", [("s", T)])
>
> - # crashes on solaris with a core dump.
> - def X_test_struct_fields(self):
> + def test_struct_fields_2(self):
> + # standard packing in struct uses no alignment.
> + # So, we have to align using pad bytes.
> + #
> + # Unaligned accesses will crash Python (on those platforms that
> + # don't allow it, like sparc solaris).
Note: this is really a bug in Python that should be fixed.
> Modified: python/trunk/Modules/_ctypes/_ctypes.c
> ==============================================================================
> --- python/trunk/Modules/_ctypes/_ctypes.c (original)
> +++ python/trunk/Modules/_ctypes/_ctypes.c Fri Mar 17 16:52:58 2006
> @@ -2529,9 +2556,14 @@
> #ifdef MS_WIN32
> address = FindAddress(handle, name, (PyObject *)type);
> if (!address) {
> - PyErr_Format(PyExc_AttributeError,
> - "function '%s' not found",
> - name);
> + if ((size_t)name & ~0xFFFF)
> + PyErr_Format(PyExc_AttributeError,
> + "function '%s' not found",
> + name);
> + else
> + PyErr_Format(PyExc_AttributeError,
> + "function ordinal %d not found",
> + name);
name can't be both a string and an integer. That last error message
looks wrong.
n
More information about the Python-checkins
mailing list