[ctypes-commit] ctypes/ctypes __init__.py,1.79,1.80
Brought to you by:
theller
From: Thomas H. <th...@us...> - 2006-03-10 06:58:53
|
Update of /cvsroot/ctypes/ctypes/ctypes In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20336 Modified Files: __init__.py Log Message: cast is now a foreign function. Index: __init__.py =================================================================== RCS file: /cvsroot/ctypes/ctypes/ctypes/__init__.py,v retrieving revision 1.79 retrieving revision 1.80 diff -C2 -d -r1.79 -r1.80 *** __init__.py 7 Mar 2006 19:47:46 -0000 1.79 --- __init__.py 10 Mar 2006 06:58:49 -0000 1.80 *************** *** 392,399 **** _pointer_type_cache[None] = c_void_p - # functions - - from _ctypes import _memmove_addr, _memset_addr, _string_at_addr, cast - if sizeof(c_uint) == sizeof(c_void_p): c_size_t = c_uint --- 392,395 ---- *************** *** 401,404 **** --- 397,404 ---- c_size_t = c_ulong + # functions + + from _ctypes import _memmove_addr, _memset_addr, _string_at_addr, _cast_addr + ## void *memmove(void *, const void *, size_t); memmove = CFUNCTYPE(c_void_p, c_void_p, c_void_p, c_size_t)(_memmove_addr) *************** *** 407,410 **** --- 407,418 ---- memset = CFUNCTYPE(c_void_p, c_void_p, c_int, c_size_t)(_memset_addr) + def PYFUNCTYPE(restype, *argtypes): + class CFunctionType(_CFuncPtr): + _argtypes_ = argtypes + _restype_ = restype + _flags_ = _FUNCFLAG_CDECL | _FUNCFLAG_PYTHONAPI + return CFunctionType + cast = PYFUNCTYPE(py_object, c_void_p, py_object)(_cast_addr) + _string_at = CFUNCTYPE(py_object, c_void_p, c_int)(_string_at_addr) def string_at(ptr, size=0): *************** *** 425,429 **** Return the string at addr.""" return _wstring_at(ptr, size) ! if _os.name == "nt": # COM stuff --- 433,437 ---- Return the string at addr.""" return _wstring_at(ptr, size) ! if _os.name == "nt": # COM stuff |