From cb2da43db8943e9e7b1d900bce1d6416339d6f64 Mon Sep 17 00:00:00 2001 From: Raymond Hettinger Date: Sun, 12 Oct 2003 18:24:34 +0000 Subject: Extended tuple's C API to include a new function, PyTuple_Pack() that is useful for rapidly building argument tuples without having to invoke the more sophisticated machinery of Py_BuildValue(). --- Objects/tupleobject.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'Objects/tupleobject.c') diff --git a/Objects/tupleobject.c b/Objects/tupleobject.c index 282da3e8b9..ef5cb8518b 100644 --- a/Objects/tupleobject.c +++ b/Objects/tupleobject.c @@ -130,6 +130,28 @@ PyTuple_SetItem(register PyObject *op, register int i, PyObject *newitem) return 0; } +PyObject * +PyTuple_Pack(int n, ...) +{ + int i; + PyObject *o; + PyObject *result; + va_list vargs; + + va_start(vargs, n); + result = PyTuple_New(n); + if (result == NULL) + return NULL; + for (i = 0; i < n; i++) { + o = va_arg(vargs, PyObject *); + Py_INCREF(o); + PyTuple_SET_ITEM(result, i, o); + } + va_end(vargs); + return result; +} + + /* Methods */ static void -- cgit v1.2.1