Python API: utility function for filling a tuple with a single value.

This commit is contained in:
2014-01-06 16:46:00 +11:00
parent 7b8e07b7d0
commit 90efa345c2
2 changed files with 15 additions and 0 deletions

View File

@@ -162,6 +162,20 @@ PyObject *PyC_FromArray(const void *array, int length, const PyTypeObject *type,
return tuple;
}
/**
* Caller needs to ensure tuple is uninitialized.
* Handy for filling a typle with None for eg.
*/
void PyC_Tuple_Fill(PyObject *tuple, PyObject *value)
{
unsigned int tot = PyTuple_GET_SIZE(tuple);
unsigned int i;
for (i = 0; i < tot; i++) {
PyTuple_SET_ITEM(tuple, i, value);
Py_INCREF(value);
}
}
/* for debugging */
void PyC_ObSpit(const char *name, PyObject *var)

View File

@@ -41,6 +41,7 @@ int PyC_AsArray(void *array, PyObject *value, const Py_ssize_t length,
const PyTypeObject *type, const bool is_double, const char *error_prefix);
PyObject * PyC_FromArray(const void *array, int length, const PyTypeObject *type,
const bool is_double, const char *error_prefix);
void PyC_Tuple_Fill(PyObject *tuple, PyObject *value);
/* follow http://www.python.org/dev/peps/pep-0383/ */
PyObject * PyC_UnicodeFromByte(const char *str);