266 Commits

Author SHA1 Message Date
Benjamin Peterson
445844993b fix refleak in the shift-by-zero case (#27870) 2016-12-03 11:01:50 -08:00
Martin Panter
6507657ddd Issue #27895: Spelling fixes (Contributed by Ville Skyttä). 2016-09-07 12:03:06 +00:00
Mark Dickinson
02c0c0b6e7 Issue #27870: A left shift of zero by a large integer no longer attempts to allocate large amounts of memory. 2016-08-29 19:38:12 +01:00
Mark Dickinson
89446b2c91 Issue #25604: Fix bug in integer true division that could have resulted in off-by-one-ulp results in unusual cases. 2016-08-21 10:59:48 +01:00
Martin Panter
a850ef698e Issue #27626: Spelling fixes in docs, comments and internal names
Based on patch by Ville Skyttä.
2016-07-28 01:11:04 +00:00
Serhiy Storchaka
8d30ad7c8a Issue #24731: Fixed crash on converting objects with special methods
__str__, __trunc__, and __float__ returning instances of subclasses of
str, long, and float to subclasses of str, long, and float correspondingly.
2015-11-25 15:55:54 +02:00
Tim Peters
61e9ffa191 Issue #19171: speed some cases of 3-argument long pow().
Reduce the base by the modulus when the base is larger than
the modulus.  This can unboundedly speed the "startup costs"
of doing modular exponentiation, particularly in cases where
the base is much larger than the modulus.  Original patch
by Armin Rigo, inspired by https://github.com/pyca/ed25519.
(grafted from f34c59494420765b013136ca93f63b716d9f1d30)
2013-10-05 16:53:52 -05:00
Serhiy Storchaka
74f49ab28b Issue #15989: Fix several occurrences of integer overflow
when result of PyInt_AsLong() or PyLong_AsLong() narrowed
to int without checks.

This is a backport of changesets 13e2e44db99d and 525407d89277.
2013-01-19 12:55:39 +02:00
Serhiy Storchaka
cf095f8e0f Issue #16761: Raise TypeError when int() or long() called with base argument only. 2012-12-28 09:31:59 +02:00
Chris Jerdonek
ad4b000179 Issue #14783: Backport changes from 3.2. 2012-10-07 20:37:54 -07:00
Ezio Melotti
c2077b0d9b #11565: Fix several typos. Patch by Piotr Kasprzyk. 2011-03-16 12:34:31 +02:00
Ezio Melotti
24b07bcba3 #11515: fix several typos. Patch by Piotr Kasprzyk. 2011-03-15 18:55:01 +02:00
Mark Dickinson
43ca377e45 Wrap multiline macros in a 'do {} while(0)', for safety. 2010-05-09 20:42:09 +00:00
Mark Dickinson
fda8d114ea Post-detabification cleanup: whitespace fixes and long line rewraps only. 2010-05-09 20:30:29 +00:00
Antoine Pitrou
c83ea137d7 Untabify C files. Will watch buildbots. 2010-05-09 14:46:46 +00:00
Mark Dickinson
22ff664ff7 Issue #8659: Remove redundant ABS calls. Thanks Daniel Stutzbach. 2010-05-08 08:01:19 +00:00
Stefan Krah
ef7590e943 Issue #8328: Silence Visual Studio warnings. 2010-04-07 08:24:44 +00:00
Mark Dickinson
ea7e5510aa Silence a 'comparison between signed and unsigned integer expressions' gcc warning. 2010-04-06 18:58:54 +00:00
Mark Dickinson
3ec9b942b5 Issue #8259: Get rid of 'outrageous left shift count' error when
left-shifting an integer by more than 2**31 on a 64-bit machine.  Also
convert shift counts to a Py_ssize_t instead of a C long.
2010-04-06 16:46:09 +00:00
Mark Dickinson
a36507c64c Issue #7767: Add new C-API function PyLong_AsLongLongAndOverflow, a
long long variant of PyLong_AsLongAndOverflow.  Patch by Case Van
Horsen.
2010-01-30 10:08:33 +00:00
Mark Dickinson
d3e323215c Refactor some longobject internals: PyLong_AsDouble and _PyLong_AsScaledDouble
(the latter renamed to _PyLong_Frexp) now use the same core code.  The
exponent produced by _PyLong_Frexp now has type Py_ssize_t instead of the
previously used int, and no longer needs scaling by PyLong_SHIFT.  This
frees the math module from having to know anything about the PyLong
implementation.  This closes issue #5576.
2010-01-02 14:45:40 +00:00
Mark Dickinson
4657283647 Issue #1811: Improve accuracy and consistency of true division for integers. 2009-12-27 14:55:57 +00:00
Mark Dickinson
e31d300664 Issue #7528: Backport PyLong_AsLongAndOverflow from py3k to trunk.
Thanks Case Van Horsen for the patch.
2009-12-21 11:21:25 +00:00
Mark Dickinson
8d87dc0c29 Issue #1087418: Small performance boost for bitwise operations on longs.
Initial patch by Gregory Smith;  some tweaks added.
2009-10-25 20:39:06 +00:00
Mark Dickinson
71adc9328d Style/consistency/nano-optimization nit: replace occurrences of
(high_bits << PyLong_SHIFT) + low_bits with
  (high_bits << PyLong_SHIFT) | low_bits
in Objects/longobject.c.  Motivation:
 - shouldn't unnecessarily mix bit ops with arithmetic ops (style)
 - this pattern should be spelt the same way thoughout (consistency)
 - it's very very very slightly faster: no need to worry about
   carries to the high digit (nano-optimization).
2009-09-28 16:52:40 +00:00