MCPcopy Create free account
hub / github.com/Kitware/VTK / vtkPythonSetArray

Function vtkPythonSetArray

Wrapping/PythonCore/vtkPythonArgs.cxx:654–703  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

652
653template <class T>
654inline bool vtkPythonSetArray(PyObject* o, const T* a, size_t n)
655{
656 if (a)
657 {
658 Py_ssize_t m = static_cast<Py_ssize_t>(n);
659
660 if (PyList_Check(o))
661 {
662 m = PyList_Size(o);
663 if (m == static_cast<Py_ssize_t>(n))
664 {
665 bool r = true;
666 for (Py_ssize_t i = 0; i < m && r; i++)
667 {
668 r = false;
669 PyObject* s = vtkPythonArgs::BuildValue(a[i]);
670 if (s)
671 {
672 PyList_SetItem(o, i, s);
673 r = true;
674 }
675 }
676 return r;
677 }
678 }
679 else if (PySequence_Check(o))
680 {
681 m = PySequence_Size(o);
682 if (m == static_cast<Py_ssize_t>(n))
683 {
684 bool r = true;
685 for (Py_ssize_t i = 0; i < m && r; i++)
686 {
687 r = false;
688 PyObject* s = vtkPythonArgs::BuildValue(a[i]);
689 if (s)
690 {
691 r = (PySequence_SetItem(o, i, s) != -1);
692 Py_DECREF(s);
693 }
694 }
695 return r;
696 }
697 }
698
699 return vtkPythonSequenceError(o, n, m);
700 }
701
702 return true;
703}
704
705inline bool vtkPythonSetArray(PyObject* o, const char* a, size_t n)
706{

Callers

nothing calls this directly

Calls 1

vtkPythonSequenceErrorFunction · 0.85

Tested by

no test coverage detected