return NULL;
}
bset = (isl_basic_set *) ptr;
- bset = isl_basic_set_finalize(bset);
+ bset = isl_basic_set_finalize(bset); // this instruction should not be required
n = isl_basic_set_n_constraint(bset);
if (n == -1) {
PyErr_SetString(PyExc_RuntimeError,
}
+static int pointer_list_append_point(isl_point *point, void *user) {
+ PyObject *pointers, *value;
+
+ pointers = (PyObject *) user;
+ value = PyLong_FromVoidPtr(point);
+ if (value == NULL) {
+ return -1;
+ }
+ return PyList_Append(pointers, value);
+}
+
+static PyObject * isl_set_points(PyObject *self, PyObject *args) {
+ long ptr;
+ isl_set *set;
+ int n;
+ PyObject *pointers;
+
+ if (!PyArg_ParseTuple(args, "l", &ptr)) {
+ return NULL;
+ }
+ set = (isl_set *) ptr;
+ pointers = PyList_New(0);
+ if (pointers == NULL) {
+ return NULL;
+ }
+ n = isl_set_foreach_point(set, pointer_list_append_point, pointers);
+ if (n == -1) {
+ PyErr_SetString(PyExc_RuntimeError,
+ "an error occurred in isl_set_foreach_point");
+ Py_DECREF(pointers);
+ return NULL;
+ }
+ return pointers;
+}
+
+
static PyMethodDef _islhelper_methods[] = {
{"isl_basic_set_constraints", isl_basic_set_constraints, METH_VARARGS, NULL},
{"isl_set_basic_sets", isl_set_basic_sets, METH_VARARGS, NULL},
+ {"isl_set_points", isl_set_points, METH_VARARGS, NULL},
{NULL, NULL, 0, NULL}
};