aboutsummaryrefslogtreecommitdiffstats
path: root/cppgenerator.cpp
diff options
context:
space:
mode:
authorLuciano Wolf <luciano.wolf@openbossa.org>2009-12-04 13:30:08 -0300
committerMarcelo Lira <marcelo.lira@openbossa.org>2009-12-08 15:07:36 -0300
commit1803c35baacb454b49c1b7326c531f0c8115b6c7 (patch)
tree6d64397bef4f33f2de67106f209ab6dbc12d1c92 /cppgenerator.cpp
parentb27f6f347dc19db7706b69c0e7c22e74dea2853b (diff)
Implement support to slice operator.
Reviewed by Luciano Wolf <luciano.wolf@openbossa.org>
Diffstat (limited to 'cppgenerator.cpp')
-rw-r--r--cppgenerator.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/cppgenerator.cpp b/cppgenerator.cpp
index bda21c46b..72c4f824c 100644
--- a/cppgenerator.cpp
+++ b/cppgenerator.cpp
@@ -37,6 +37,8 @@ CppGenerator::CppGenerator()
m_sequenceProtocol.insert("__len__", StrPair("PyObject* self", "Py_ssize_t"));
m_sequenceProtocol.insert("__getitem__", StrPair("PyObject* self, Py_ssize_t _i", "PyObject*"));
m_sequenceProtocol.insert("__setitem__", StrPair("PyObject* self, Py_ssize_t _i, PyObject* _value", "int"));
+ m_sequenceProtocol.insert("__getslice__", StrPair("PyObject* self, Py_ssize_t _i1, Py_ssize_t _i2", "PyObject*"));
+ m_sequenceProtocol.insert("__setslice__", StrPair("PyObject* self, Py_ssize_t _i1, Py_ssize_t _i2, PyObject* _value", "int"));
m_sequenceProtocol.insert("__contains__", StrPair("PyObject* self, PyObject* _value", "int"));
m_sequenceProtocol.insert("__concat__", StrPair("PyObject* self, PyObject* _other", "PyObject*"));
}
@@ -1494,9 +1496,9 @@ void CppGenerator::writeTypeAsSequenceDefinition(QTextStream& s, const AbstractM
<< INDENT << "/*sq_concat*/ " << funcs["__concat__"] << ",\n"
<< INDENT << "/*sq_repeat*/ 0,\n"
<< INDENT << "/*sq_item*/ " << funcs["__getitem__"] << ",\n"
- << INDENT << "/*sq_slice*/ 0,\n"
+ << INDENT << "/*sq_slice*/ " << funcs["__getslice__"] << ",\n"
<< INDENT << "/*sq_ass_item*/ " << funcs["__setitem__"] << ",\n"
- << INDENT << "/*sq_ass_slice*/ 0,\n"
+ << INDENT << "/*sq_ass_slice*/ " << funcs["__setslice__"] << ",\n"
<< INDENT << "/*sq_contains*/ " << funcs["__contains__"] << ",\n"
<< INDENT << "/*sq_inplace_concat*/ 0,\n"
<< INDENT << "/*sq_inplace_repeat*/ 0\n"