| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
Avoid checks for negative indices and duplicate checks for support of
the sequence protocol.
|
|
|
|
| |
Bugfix candidate? Don't know how this is handled in the docs.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
don't understand how this function works, also beefed up the docs. The
most common usage error is of this form (often spread out across gotos):
if (_PyString_Resize(&s, n) < 0) {
Py_DECREF(s);
s = NULL;
goto outtahere;
}
The error is that if _PyString_Resize runs out of memory, it automatically
decrefs the input string object s (which also deallocates it, since its
refcount must be 1 upon entry), and sets s to NULL. So if the "if"
branch ever triggers, it's an error to call Py_DECREF(s): s is already
NULL! A correct way to write the above is the simpler (and intended)
if (_PyString_Resize(&s, n) < 0)
goto outtahere;
Bugfix candidate.
|
|
|
|
| |
SF Patch #547813.
|
| |
|
|
|
|
| |
Additional material is still needed in that section.
|
| |
|
|
|
|
| |
Small additional changes.
|
|
|
|
|
| |
Note that PyObject_Size() is a synonym for PyObject_Length().
This closes SF patch #544330 (contributed by Thomas Heller).
|
| |
|
| |
|
|
|
|
|
|
|
| |
(The real issue is whether modules can benefit from an alternate
implementation strategy rather than using a dictionary. We should migrate
away from direct dictionary manipulation to allow more room for Jeremy to
flex the implementation with changes in globals lookup.)
|
| |
|
|
|
|
| |
Update description of PyType_Check().
|
|
|
|
| |
used to define Python objects.
|
| |
|
|
|
|
|
| |
I probably didn't do a correct thing for the LaTeX spelling of the
integer 1.
|
|
|
|
|
|
|
|
| |
document to the C API reference. Move some instructional text from the API
reference to the Extending & Embedding manual.
Fix the descriptions of the es and es# formats for PyArg_Parse*().
This closes SF bug #536516.
|
|
|
|
| |
This closes SF bug #539081.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
descriptor, as used for the tp_methods slot of a type. These new flag
bits are both optional, and mutually exclusive. Most methods will not
use either. These flags are used to create special method types which
exist in the same namespace as normal methods without having to use
tedious construction code to insert the new special method objects in
the type's tp_dict after PyType_Ready() has been called.
If METH_CLASS is specified, the method will represent a class method
like that returned by the classmethod() built-in.
If METH_STATIC is specified, the method will represent a static method
like that returned by the staticmethod() built-in.
These flags may not be used in the PyMethodDef table for modules since
these special method types are not meaningful in that case; a
ValueError will be raised if these flags are found in that context.
|
|
|
|
| |
closes bug 534495
|
| |
|
|
|
|
|
| |
other PyObject *.
This closes SF bug #494007.
|
|
|
|
|
| |
(with only minor changes by Fred).
This closes SF bug #498607.
|
|
|
|
| |
This closes SF bug #520087.
|
|
|
|
| |
borrowed references.
|
| |
|
|
|
|
|
|
|
|
| |
This closes SF patch #496215.
Add a little more detail to the example that had not been closed.
Bugfix: this should be made part of 2.2.1.
|
| |
|
|
|
|
|
|
|
| |
PyDict_UpdateFromSeq2(): removed it.
PyDict_MergeFromSeq2(): made it public and documented it.
PyDict_Merge() docs: updated to reveal <wink> that the second
argument can be any mapping object.
|
|
|
|
| |
This closes SF bug #489872.
|
|
|
|
|
| |
is not handled properly.
This closes SF bug #485153.
|
|
|
|
|
|
| |
of references that now state that these attributes have been removed,
directing the reader to the dir() function.
This closes SF bug #456420.
|
|
|
|
| |
This closes SF bug #488387.
|
| |
|
|
|
|
|
|
|
|
| |
parameters (like \UNIX) are commonly entered using an empty group to
separate the markup from a following inter-word space; this is not
needed when the next character is punctuation, or the markup is the
last thing in the enclosing group. These cases were marked
inconsistently; the empty group is now *only* used when needed.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
supports the single-segment readable buffer interface.
Add documentation for this and other PyObject_XXXBuffer() calls.
|
| |
|
|
|
|
| |
PyObject_CallMethodObArgs() ---> PyObject_CallMethodObjArgs()
|
|
|
|
| |
Minor cleanups & markup consistency fixes.
|
|
|
|
| |
PyObject_CallMethodObArgs().
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
outer level, the iterator protocol is used for memory-efficiency (the
outer sequence may be very large if fully materialized); at the inner
level, PySequence_Fast() is used for time-efficiency (these should
always be sequences of length 2).
dictobject.c, new functions PyDict_{Merge,Update}FromSeq2. These are
wholly analogous to PyDict_{Merge,Update}, but process a sequence-of-2-
sequences argument instead of a mapping object. For now, I left these
functions file static, so no corresponding doc changes. It's tempting
to change dict.update() to allow a sequence-of-2-seqs argument too.
Also changed the name of dictionary's keyword argument from "mapping"
to "x". Got a better name? "mapping_or_sequence_of_pairs" isn't
attractive, although more so than "mosop" <wink>.
abstract.h, abstract.tex: Added new PySequence_Fast_GET_SIZE function,
much faster than going thru the all-purpose PySequence_Size.
libfuncs.tex:
- Document dictionary().
- Fiddle tuple() and list() to admit that their argument is optional.
- The long-winded repetitions of "a sequence, a container that supports
iteration, or an iterator object" is getting to be a PITA. Many
months ago I suggested factoring this out into "iterable object",
where the definition of that could include being explicit about
generators too (as is, I'm not sure a reader outside of PythonLabs
could guess that "an iterator object" includes a generator call).
- Please check my curly braces -- I'm going blind <0.9 wink>.
abstract.c, PySequence_Tuple(): When PyObject_GetIter() fails, leave
its error msg alone now (the msg it produces has improved since
PySequence_Tuple was generalized to accept iterable objects, and
PySequence_Tuple was also stomping on the msg in cases it shouldn't
have even before PyObject_GetIter grew a better msg).
|
| |
|
| |
|
| |
|