Mark Dickinson
40228912c8
Fix possible undefined behaviour from signed overflow in struct module.
...
Backport of revisions 81897, 81898 and 81902 from py3k.
2010-06-11 20:27:05 +00:00
Antoine Pitrou
c83ea137d7
Untabify C files. Will watch buildbots.
2010-05-09 14:46:46 +00:00
Mark Dickinson
4f185228b0
A handful of whitespace fixes in Modules/_struct.c.
2010-04-04 21:19:35 +00:00
Mark Dickinson
fdaaa9c9d8
Issue #8300 (__index__ handling in struct.pack): Remove redundant check
...
and improve test coverage. Thanks Meador Inge for the patch.
2010-04-04 08:43:04 +00:00
Mark Dickinson
4846a8e828
Issue #8300 : Let struct.pack use __index__ to convert and pack non-integers.
...
Based on a patch by Meador Inge.
2010-04-03 14:05:10 +00:00
Mark Dickinson
2db56878f6
Silence compiler warning.
2010-03-07 17:10:19 +00:00
Mark Dickinson
154b7ad07e
Issue #1530559 : When packing a non-integer with any integer conversion
...
code using struct.pack, attempt to convert to an integer first using
the argument's __int__ method (if present). Also raise a
DeprecationWarning for any such usage of __int__.
This fixes a regression from 2.6, where some (but not all) integer
conversion codes already used __int__.
2010-03-07 16:24:45 +00:00
Mark Dickinson
20d7f6e8f4
Remove the redundant #define: PY_STRUCT_FLOAT_COERCE
2010-03-05 14:50:22 +00:00
Mark Dickinson
1c0c78c61f
Fix incorrect stacklevel for DeprecationWarnings originating from the struct module.
...
Also clean up related tests in test_struct.
The stacklevel fix should be backported to 2.6 once that branch is unfrozen.
2010-03-05 14:36:20 +00:00
Mark Dickinson
3d830828de
Issue #7078 : _struct.__doc__ was being ignored. Import it into struct.
...
Also add description of '?' struct format character. Thanks Gabriel
Genellina for the patch.
2009-10-08 15:54:10 +00:00
Mark Dickinson
716a9ccd3d
Eliminate unnecessary get_wrapped_(u)long defines in struct module.
2009-09-27 16:39:28 +00:00
Mark Dickinson
5fd3af24a2
Issue #1523 : Remove deprecated overflow masking in struct module, and
...
make sure that out-of-range values consistently raise struct.error.
2009-07-07 15:08:28 +00:00
Mark Dickinson
24766ba6af
Typo in error message
2009-07-07 10:18:22 +00:00
Mark Dickinson
463dc4bf26
Issues #1530559 , #1741130 : Fix various inconsistencies in struct.pack
...
integer packing, and reenable some previously broken tests.
2009-07-05 10:01:24 +00:00
Jeffrey Yasskin
7937d939b1
Fix nearly all compilation warnings under Apple gcc-4.0. Tested with OPT="-g
...
-Wall -Wstrict-prototypes -Werror" in both --with-pydebug mode and --without.
There's still a batch of non-prototype warnings in Xlib.h that I don't know how
to fix.
2009-05-29 03:44:31 +00:00
Georg Brandl
6269fec171
#4228 : Pack negative values the same way as 2.4
...
in struct's L format.
2009-01-01 12:15:31 +00:00
Benjamin Peterson
0225248033
Victor Stinner's patches to check the return result of PyLong_Ssize_t
...
reviewed by Amaury
2008-09-30 02:11:07 +00:00
Gregory P. Smith
9d53457e59
Merge in release25-maint r60793:
...
Added checks for integer overflows, contributed by Google. Some are
only available if asserts are left in the code, in cases where they
can't be triggered from Python code.
2008-06-11 07:41:16 +00:00
Gregory P. Smith
dd96db63f6
This reverts r63675 based on the discussion in this thread:
...
http://mail.python.org/pipermail/python-dev/2008-June/079988.html
Python 2.6 should stick with PyString_* in its codebase. The PyBytes_* names
in the spirit of 3.0 are available via a #define only. See the email thread.
2008-06-09 04:58:54 +00:00
Christian Heimes
593daf545b
Renamed PyString to PyBytes
2008-05-26 12:51:38 +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
Amaury Forgeot d'Arc
588ff93f13
Crashers of the day: Py_CLEAR must be used when there is a chance that the
...
function can be called recursively.
This was discussed in issue1020188.
In python codebase, all occurrences of Py_[X]DECREF(xxx->yyy) are suspect,
except when they appear in tp_new or tp_dealloc functions, or when
the member cannot be of a user-defined class.
Note that tp_init is not safe.
I do have a (crashing) example for every changed line.
Is it worth adding them to the test suite?
Example:
class SpecialStr(str):
def __del__(self):
s.close()
import cStringIO
s = cStringIO.StringIO(SpecialStr("text"))
s.close() # Segfault
2008-02-16 14:34:57 +00:00
Raymond Hettinger
18e08e5e61
clearcache() needs to remove the dict as well as clear it.
2008-01-18 00:10:42 +00:00
Christian Heimes
76d19f68e4
Added _struct._clearcache() for regression tests
2008-01-04 02:54:42 +00:00
Raymond Hettinger
2f6621cce7
Finish-up the struct module optimizations started at the Iceland NFS sprint.
2008-01-04 00:01:15 +00:00
Christian Heimes
e93237dfcc
#1629 : Renamed Py_Size, Py_Type and Py_Refcnt to Py_SIZE, Py_TYPE and Py_REFCNT. Macros for b/w compatibility are available.
2007-12-19 02:37:44 +00:00
Martin v. Löwis
6819210b9e
PEP 3123: Provide forward compatibility with Python 3.0, while keeping
...
backwards compatibility. Add Py_Refcnt, Py_Type, Py_Size, and
PyVarObject_HEAD_INIT.
2007-07-21 06:55:02 +00:00
Neal Norwitz
a84dcd7546
Stop using METH_OLDARGS implicitly
2007-05-22 07:16:44 +00:00
Kristján Valur Jónsson
67387fb4aa
Make pythoncore compile cleanly with VisualStudio 2005. Used an explicit typecast to get a 64 bit integer, and undefined the Yield macro that conflicts with winbase.h
2007-04-25 00:17:39 +00:00
Raymond Hettinger
7a3d41f4ca
Bug #1563759 : struct.unpack doens't support buffer protocol objects
2007-04-05 18:00:03 +00:00
Martin v. Löwis
aef4c6bc00
Patch #1610575 : Add support for _Bool to struct.
2007-01-21 09:33:07 +00:00
Bob Ippolito
e6c9f982a0
Fix #1530559 , struct.pack raises TypeError where it used to convert.
...
Passing float arguments to struct.pack when integers are expected
now triggers a DeprecationWarning.
2006-08-04 23:59:21 +00:00
Neal Norwitz
07aadb14f3
Add PyErr_WarnEx() so C code can pass the stacklevel to warnings.warn().
...
This provides the proper warning for struct.pack().
PyErr_Warn() is now deprecated in favor of PyErr_WarnEx().
As mentioned by Tim Peters on python-dev.
2006-07-30 06:55:48 +00:00
Neal Norwitz
3c5431e132
Wrap some long lines
...
Top/Bottom factor out some common expressions
Add a XXX comment about widing offset.
2006-06-11 05:45:25 +00:00
Tim Peters
5ec2e85d0c
s_methods[]: Stop compiler warnings by casting
...
s_unpack_from to PyCFunction.
2006-06-04 15:49:07 +00:00
Martin Blais
af2ae72cb2
Fixes in struct and socket from merge reviews.
...
- Following Guido's comments, renamed
* pack_to -> pack_into
* recv_buf -> recv_into
* recvfrom_buf -> recvfrom_into
- Made fixes to _struct.c according to Neal Norwitz comments on the checkins
list.
- Converted some ints into the appropriate -- I hope -- ssize_t and size_t.
2006-06-04 13:49:49 +00:00
Tim Peters
72270c220e
Repaired error in new comment.
2006-05-31 15:34:37 +00:00
Tim Peters
d6a6f023c8
_range_error(): Speed and simplify (there's no real need for
...
loops here). Assert that size_t is actually big enough, and
that f->size is at least one. Wrap a long line.
2006-05-31 15:33:22 +00:00
Tim Peters
c2b550e16e
Trimmed trailing whitespace.
2006-05-31 14:28:07 +00:00
Neal Norwitz
971ea11e4c
Calculate smallest properly (it was off by one) and use proper ssize_t types for Win64
2006-05-31 07:43:27 +00:00
Bob Ippolito
4182a75571
Change wrapping terminology to overflow masking
2006-05-30 17:37:54 +00:00
Bob Ippolito
2fd3977a9d
struct: modulo math plus warning on all endian-explicit formats for compatibility with older struct usage (ugly)
2006-05-29 22:55:48 +00:00
Armin Rigo
162997efb1
Silence a warning.
2006-05-29 17:59:47 +00:00
Bob Ippolito
28b2686260
simplify the struct code a bit (no functional changes)
2006-05-29 15:47:29 +00:00
Georg Brandl
c26025c562
Fix ref-antileak in _struct.c which eventually lead to deallocating None.
2006-05-28 21:42:54 +00:00
Bob Ippolito
cd51ca5b11
fix struct regression on 64-bit platforms
2006-05-27 15:53:49 +00:00
Bob Ippolito
1fcdc232db
Fix up struct docstrings, add struct.pack_to function for symmetry
2006-05-27 12:11:36 +00:00
Bob Ippolito
90bd0a554e
Remove the range checking and int usage #defines from _struct and strip out the now-dead code
2006-05-27 11:47:12 +00:00
Bob Ippolito
aa70a17e13
enable all of the struct tests, use ssize_t, fix some whitespace
2006-05-26 20:25:23 +00:00
Tim Peters
735ae484f0
Repair Windows compiler warnings about mixing
...
signed and unsigned integral types in comparisons.
2006-05-26 16:49:28 +00:00