annotate Include/sliceobject.h @ 25838:8540887bcec6 2.2

Backport of 2.183: Fix memory leak in add_subclass() found by NealN with valgrind.
author Guido van Rossum <guido@python.org>
date Fri, 18 Oct 2002 13:42:21 +0000
parents 091ca6b9348f
children 245224d1b8c9
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
3834
77d912f2abcb Slice and ellipses interface
Guido van Rossum <guido@python.org>
parents:
diff changeset
1 #ifndef Py_SLICEOBJECT_H
77d912f2abcb Slice and ellipses interface
Guido van Rossum <guido@python.org>
parents:
diff changeset
2 #define Py_SLICEOBJECT_H
77d912f2abcb Slice and ellipses interface
Guido van Rossum <guido@python.org>
parents:
diff changeset
3 #ifdef __cplusplus
77d912f2abcb Slice and ellipses interface
Guido van Rossum <guido@python.org>
parents:
diff changeset
4 extern "C" {
77d912f2abcb Slice and ellipses interface
Guido van Rossum <guido@python.org>
parents:
diff changeset
5 #endif
77d912f2abcb Slice and ellipses interface
Guido van Rossum <guido@python.org>
parents:
diff changeset
6
4403
3b3f7c3f6da2 Ellipses -> Ellipsis rename (the dictionary really says that it should
Guido van Rossum <guido@python.org>
parents: 3834
diff changeset
7 /* The unique ellipsis object "..." */
3834
77d912f2abcb Slice and ellipses interface
Guido van Rossum <guido@python.org>
parents:
diff changeset
8
4403
3b3f7c3f6da2 Ellipses -> Ellipsis rename (the dictionary really says that it should
Guido van Rossum <guido@python.org>
parents: 3834
diff changeset
9 extern DL_IMPORT(PyObject) _Py_EllipsisObject; /* Don't use this directly */
3834
77d912f2abcb Slice and ellipses interface
Guido van Rossum <guido@python.org>
parents:
diff changeset
10
4403
3b3f7c3f6da2 Ellipses -> Ellipsis rename (the dictionary really says that it should
Guido van Rossum <guido@python.org>
parents: 3834
diff changeset
11 #define Py_Ellipsis (&_Py_EllipsisObject)
3834
77d912f2abcb Slice and ellipses interface
Guido van Rossum <guido@python.org>
parents:
diff changeset
12
77d912f2abcb Slice and ellipses interface
Guido van Rossum <guido@python.org>
parents:
diff changeset
13 /* Slice object interface */
77d912f2abcb Slice and ellipses interface
Guido van Rossum <guido@python.org>
parents:
diff changeset
14
77d912f2abcb Slice and ellipses interface
Guido van Rossum <guido@python.org>
parents:
diff changeset
15 /*
77d912f2abcb Slice and ellipses interface
Guido van Rossum <guido@python.org>
parents:
diff changeset
16
77d912f2abcb Slice and ellipses interface
Guido van Rossum <guido@python.org>
parents:
diff changeset
17 A slice object containing start, stop, and step data members (the
77d912f2abcb Slice and ellipses interface
Guido van Rossum <guido@python.org>
parents:
diff changeset
18 names are from range). After much talk with Guido, it was decided to
77d912f2abcb Slice and ellipses interface
Guido van Rossum <guido@python.org>
parents:
diff changeset
19 let these be any arbitrary python type.
77d912f2abcb Slice and ellipses interface
Guido van Rossum <guido@python.org>
parents:
diff changeset
20 */
77d912f2abcb Slice and ellipses interface
Guido van Rossum <guido@python.org>
parents:
diff changeset
21
77d912f2abcb Slice and ellipses interface
Guido van Rossum <guido@python.org>
parents:
diff changeset
22 typedef struct {
13445
091ca6b9348f ANSI-fication and Py_PROTO extermination.
Fred Drake <fdrake@acm.org>
parents: 9586
diff changeset
23 PyObject_HEAD
091ca6b9348f ANSI-fication and Py_PROTO extermination.
Fred Drake <fdrake@acm.org>
parents: 9586
diff changeset
24 PyObject *start, *stop, *step;
3834
77d912f2abcb Slice and ellipses interface
Guido van Rossum <guido@python.org>
parents:
diff changeset
25 } PySliceObject;
77d912f2abcb Slice and ellipses interface
Guido van Rossum <guido@python.org>
parents:
diff changeset
26
77d912f2abcb Slice and ellipses interface
Guido van Rossum <guido@python.org>
parents:
diff changeset
27 extern DL_IMPORT(PyTypeObject) PySlice_Type;
77d912f2abcb Slice and ellipses interface
Guido van Rossum <guido@python.org>
parents:
diff changeset
28
77d912f2abcb Slice and ellipses interface
Guido van Rossum <guido@python.org>
parents:
diff changeset
29 #define PySlice_Check(op) ((op)->ob_type == &PySlice_Type)
77d912f2abcb Slice and ellipses interface
Guido van Rossum <guido@python.org>
parents:
diff changeset
30
13445
091ca6b9348f ANSI-fication and Py_PROTO extermination.
Fred Drake <fdrake@acm.org>
parents: 9586
diff changeset
31 DL_IMPORT(PyObject *) PySlice_New(PyObject* start, PyObject* stop,
091ca6b9348f ANSI-fication and Py_PROTO extermination.
Fred Drake <fdrake@acm.org>
parents: 9586
diff changeset
32 PyObject* step);
091ca6b9348f ANSI-fication and Py_PROTO extermination.
Fred Drake <fdrake@acm.org>
parents: 9586
diff changeset
33 DL_IMPORT(int) PySlice_GetIndices(PySliceObject *r, int length,
091ca6b9348f ANSI-fication and Py_PROTO extermination.
Fred Drake <fdrake@acm.org>
parents: 9586
diff changeset
34 int *start, int *stop, int *step);
3834
77d912f2abcb Slice and ellipses interface
Guido van Rossum <guido@python.org>
parents:
diff changeset
35
77d912f2abcb Slice and ellipses interface
Guido van Rossum <guido@python.org>
parents:
diff changeset
36 #ifdef __cplusplus
77d912f2abcb Slice and ellipses interface
Guido van Rossum <guido@python.org>
parents:
diff changeset
37 }
77d912f2abcb Slice and ellipses interface
Guido van Rossum <guido@python.org>
parents:
diff changeset
38 #endif
77d912f2abcb Slice and ellipses interface
Guido van Rossum <guido@python.org>
parents:
diff changeset
39 #endif /* !Py_SLICEOBJECT_H */