Skip to content
Snippets Groups Projects
Commit 0e6b872d authored by David Gobbi's avatar David Gobbi Committed by Kitware Robot
Browse files

Merge topic 'python-resolve-ambiguity'


2ac06c6b Resolve Python ambiguity for sequence objects

Acked-by: default avatarKitware Robot <kwrobot@kitware.com>
Reviewed-by: default avatarAndrew Maclean <andrew.amaclean@gmail.com>
Merge-request: !6380
parents 573169ed 2ac06c6b
Branches
Tags
No related merge requests found
......@@ -757,17 +757,23 @@ int vtkPythonOverload::CheckArg(PyObject* arg, const char* format, const char* n
PyObject* sarg = arg;
while (PySequence_Check(sarg))
{
Py_ssize_t m = PySequence_Size(sarg);
PyObject* seq = sarg;
Py_ssize_t m = PySequence_Size(seq);
if (m <= 0 || (sizeneeded != 0 && m != sizeneeded))
{
break;
}
PyObject* sargsave = sarg;
sarg = PySequence_GetItem(sarg, 0);
sarg = PySequence_GetItem(seq, 0);
if (*cptr != '[')
{
penalty = vtkPythonOverload::CheckArg(sarg, &classname[1], "");
// increase penalty for sequences, to disambiguate the use
// of an object as a sequence vs. direct use of the object
if (penalty < VTK_PYTHON_NEEDS_CONVERSION)
{
penalty++;
}
Py_DECREF(sarg);
break;
}
......@@ -778,9 +784,9 @@ int vtkPythonOverload::CheckArg(PyObject* arg, const char* format, const char* n
{
cptr++;
}
if (sargsave != arg)
if (seq != arg)
{
Py_DECREF(sargsave);
Py_DECREF(seq);
}
}
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment