| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
buffer increment, and sometimes the new buffer size. Make it do what
its name says, and fix the one place where this matters to the caller.
Also add a comment explaining why we call lseek() and then ftell().
|
|
|
|
|
| |
from the fast free list -- the type (at least) is reset by
_Py_Dealloc().
|
| |
|
|
|
|
| |
not equality test.
|
| |
|
|
|
|
| |
Tip by Vladimir Marangozov.
|
|
|
|
| |
the `builtins' initialization fails. Vladimir Marangozov.
|
| |
|
| |
|
| |
|
|
|
|
| |
that (as far as the data type is concerned!) this is character data.
|
| |
|
| |
|
| |
|
|
|
|
| |
Noted by Greg Stein.
|
|
|
|
| |
make a common case slightly faster.
|
|
|
|
|
| |
*beyond* the null byte at the end of the input string, when the input
is inf(inity). Discovered by Greg Ward.
|
| |
|
|
|
|
|
| |
before code has been checked for validity. Discovered by Vladimir
Marangozov.
|
|
|
|
|
| |
native format, as void* (translated to Python int or long).
Also adds PyLong_FromVoidPtr and PyLong_AsVoidPtr to longobject.c.
|
|
|
|
|
| |
changed to "LONG_LONG_hash" in the list of forward decls). Discovered
by Jason Harper.
|
|
|
|
|
|
| |
The MS compiler doesn't call it 'long long', it uses __int64,
so a new #define, LONG_LONG, has been added and all occurrences
of 'long long' are replaced with it.
|
|
|
|
|
|
|
| |
Previously, this said "unsubscriptable object"; in 1.5.1, the reverse
problem existed, where None[''] would complain about a non-integer
index. This fix does the right thing in all cases (for get, set and
del item).
|
|
|
|
|
|
| |
- Faster conversion to string for binary bases: linear instead of quadratic!
- Allocate smaller result for certain masking ops, e.g. (1L<<30000) & 1.
|
| |
|
|
|
|
| |
for loop with z==NULL but continue to reference z later.
|
|
|
|
|
| |
literals. (The previous version of this code would not show the
offending input, even though there was code that attempted this.)
|
|
|
|
| |
freed.
|
|
|
|
|
| |
was used so it's reflected in the IOError. Call
PyErr_SetFromErrnoWithFilename().
|
|
|
|
|
|
| |
before calling it. This check was there when the objects were of the
same type *before* coercion, but not if they initially differed but
became the same *after* coercion.
|
|
|
|
|
|
|
| |
Sparc Solaris 2.6 (fully patched!) that I don't want to dig into, but
which I suspect is a bug in the multithreaded malloc library that only
shows up when run on a multiprocessor. (The program wasn't using
threads, it was just using the multithreaded C library.)
|
|
|
|
|
|
| |
faster (using PyList_GetSlice()). Also added a test for a NULL
argument, as with PySequence_Tuple(). (Hmm... Better names for these
two would be PyList_FromSequence() and PyTuple_FromSequence(). Oh well.)
|
|
|
|
|
|
|
|
|
| |
"indefinite length" sequences. These should still have a length, but
the length is only used as a hint -- the actual length of the sequence
is determined by the item that raises IndexError, which may be either
smaller or larger than what len() returns. (This is a novelty; map(),
filter() and reduce() only allow the actual length to be larger than
what len() returns, not shorter. I'll fix that shortly.)
|
|
|
|
| |
macros for more efficient access to the fields.
|
|
|
|
| |
to the .h file and add macros there for inlined access to the fields.
|
|
|
|
| |
callable objects than regular Pythonm functions as their im_func.
|
|
|
|
| |
changing __dict__ *or* __bases__.
|
| |
|
|
|
|
|
|
| |
is returned as the object's __doc__ attribute.
(If only the list of methods would be referenced from the type...)
|
|
|
|
| |
Marangozov.
|
| |
|
|
|
|
|
|
| |
conversions. Formerly, for example, int('-') would return 0 instead
of raising ValueError, and int(' 0') would raise ValueError
(complaining about a null byte!) instead of 0...
|
|
|
|
|
|
|
|
|
|
|
|
| |
+ Took the "list" argument out of the other functions that no longer need
it. This speeds things up a little more.
+ Small comment changes in accord with that.
+ Exploited the now-safe ability to cache values in the partitioning loop.
Makes no timing difference on my flavor of Pentium, but this machine ran out
of registers 12 iterations ago. It should yield a small speedup on a RISC
machine, and not hurt in any case.
|
|
|
|
|
|
|
|
|
|
| |
instead of testing whether the list changed size after each
comparison, temporarily set the type of the list to an immutable list
type. This should allow continued use of the list for legitimate
purposes but disallows all operations that can change it in any way.
(Changes to the internals of list items are not caught, of cause;
that's not possible to detect, and it's not necessary to protect the
sort code, either.)
|
| |
|
|
|
|
|
| |
the type names), make sure that numeric objects are considered smaller
than all other objects, by forcing their name to "".
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
not in restricted mode.
__dict__ can be set to any dictionary; the cl_getattr, cl_setattr and
cl_delattr slots are refreshed.
__name__ can be set to any string.
__bases__ can be set to to a tuple of classes, provided they are not
subclasses of the class whose attribute is being assigned.
__getattr__, __setattr__ and __delattr__ can be set to anything, or
deleted; the appropriate slot (cl_getattr, cl_setattr, cl_delattr) is
refreshed.
(Note: __name__ really doesn't need to be a special attribute, but
that would be more work.)
|
|
|
|
| |
the median-of-three code to get a few percent back.
|
| |
|