Commit Graph

175 Commits

Author SHA1 Message Date
Thomas Heller
fffd939056 Make _ctypes.c PY_SSIZE_T_CLEAN. 2008-03-25 21:18:39 +00:00
Thomas Heller
50a24d8bfd Include <alloca.h> on Solaris, see issue #1506.
It would probably be better to have a configure test for that, but
this is outside of my configure expertise.
2008-03-18 15:03:17 +00:00
Thomas Heller
41e22ff5cc Remove unneeded initializer. 2008-03-14 21:06:21 +00:00
Thomas Heller
f3c0559b5e Issue 1872: Changed the struct module typecode from 't' to '?', for
compatibility with PEP3118.
2008-03-05 15:34:29 +00:00
Thomas Heller
a23aede562 Try to fix the build for PY_LINUX. 2008-03-04 20:21:42 +00:00
Thomas Heller
8bdf81d2df Merged changes from libffi3-branch.
The bundled libffi copy is now in sync with the recently released
libffi3.0.4 version, apart from some small changes to
Modules/_ctypes/libffi/configure.ac.

I gave up on using libffi3 files on os x.
Instead, static configuration with files from pyobjc is used.
2008-03-04 20:09:11 +00:00
Neal Norwitz
ed0a593a10 Get ctypes working on the Alpha (Tru64). The problem was that there
were two module_methods and the one used depended on the order the
modules were loaded.  By making the test module_methods static,
it is not exported and the correct version is picked up.
2008-02-24 07:21:56 +00:00
Thomas Heller
981f31860b configure.ac: Remove the configure check for _Bool, it is already done in the
top-level Python configure script.
configure, fficonfig.h.in: regenerated.
2008-02-21 18:28:48 +00:00
Thomas Heller
a06a1a88ee Add pickle support to ctypes types. 2008-02-13 20:21:53 +00:00
Brett Cannon
8352585909 Make sure a switch statement does not have repetitive case statements.
Error found through LLVM post-2.1 svn.
2008-02-07 22:27:10 +00:00
Thomas Heller
55b8c3e26f Fixed refcounts and error handling.
Should not be merged to py3k branch.
2008-02-06 20:29:17 +00:00
Thomas Heller
99120c4f7e Revert rev. 59925, it breaks comtypes (I need to further examine this). 2008-01-28 08:44:13 +00:00
Christian Heimes
d7e1b2bd17 static PyObject* variables should use PyString_InternFromString() instead of PyObject_FromString() to store a python string in a function level static var. 2008-01-28 02:07:53 +00:00
Neal Norwitz
b3c8243c47 Update to newer version of ffi. Fixes crashes and test failures of longdouble 2008-01-27 17:10:43 +00:00
Thomas Heller
5ca924038d Invert the checks in get_[u]long and get_[u]longlong. The intent was
to not accept float types; the result was that integer-like objects
were not accepted.

Ported from release25-maint.
2008-01-24 19:15:02 +00:00
Thomas Heller
71dba4ccee Replace Py_BuildValue with PyTuple_Pack because it is faster.
Also add a missing DECREF.
2008-01-24 18:54:12 +00:00
Thomas Heller
e4c03e4520 Use a PyDictObject again for the array type cache; retrieving items
from the WeakValueDictionary was slower by nearly a factor of 3.

To avoid leaks, weakref proxies for the array types are put into the
cache dict, with weakref callbacks that removes the entries when the
type goes away.
2008-01-24 18:36:27 +00:00
Brett Cannon
a35a8b11c3 Fix a function pointer declaration to silence the compiler. 2008-01-17 18:45:10 +00:00
Thomas Heller
0f75f9847a Use 'g' instead of 'D' as the ctypes typecode for c_longdouble, for
compliance with PEP 3118.
2008-01-16 20:34:37 +00:00
Thomas Heller
415c1e36a9 Raise a TypeError instead of a ValueError when too many initializers
are used in a Structure or Union constructor.
2008-01-16 19:45:51 +00:00
Thomas Heller
02ec289f3e Raise a TypeError if conflicting positional and named arguments are
passed to a Structure or Union constructor.
2008-01-16 19:37:33 +00:00
Thomas Heller
902d30752f Convert the internal ctypes array type cache to a WeakValueDict so
that array types do not live longer than needed.
2008-01-16 19:16:27 +00:00
Thomas Heller
7a66a1becc Issue 1821: configure libffi for amd64 on FreeeBSD. 2008-01-14 10:35:28 +00:00
Amaury Forgeot d'Arc
7cdf5f5c31 ?Why did my tests not notice this before?
Slots inheritance is very different from OO inheritance.
This code lead to infinite recursion on classes derived from StructType.
2008-01-14 01:07:27 +00:00
Amaury Forgeot d'Arc
08ccf202e6 As discussed in issue 1700288:
ctypes takes some liberties when creating python types: it modifies the types'
__dict__ directly, bypassing all the machinery of type objects which deal with
special methods.  And this broke recent optimisations of method lookup.
Now we try to modify the type with more "official" functions.
2008-01-14 00:22:44 +00:00