diff options
-rw-r--r-- | generator/cppgenerator.cpp | 10 | ||||
-rw-r--r-- | tests/samplebinding/typesystem_sample.xml | 2 |
2 files changed, 9 insertions, 3 deletions
diff --git a/generator/cppgenerator.cpp b/generator/cppgenerator.cpp index 97da37d4a..7142abc75 100644 --- a/generator/cppgenerator.cpp +++ b/generator/cppgenerator.cpp @@ -3946,8 +3946,11 @@ void CppGenerator::finishGeneration() } s << INDENT << "// Create an array of wrapper types for the current module." << endl; - s << INDENT << "static PyTypeObject* cppApi[" << "SBK_" << moduleName() << "_IDX_COUNT" << "];" << endl; - s << INDENT << cppApiVariableName() << " = cppApi;" << endl << endl; + int maxTypeIndex = getMaxTypeIndex(); + if (maxTypeIndex) { + s << INDENT << "static PyTypeObject* cppApi[SBK_" << moduleName() << "_IDX_COUNT];" << endl; + s << INDENT << cppApiVariableName() << " = cppApi;" << endl << endl; + } s << "#ifdef IS_PY3K" << endl; s << INDENT << "PyObject* module = Shiboken::Module::create(\"" << moduleName() << "\", &moduledef);" << endl; @@ -3998,7 +4001,8 @@ void CppGenerator::finishGeneration() foreach (QByteArray type, typeResolvers) s << INDENT << typeResolverString(type) << ';' << endl; - s << endl << INDENT << "Shiboken::Module::registerTypes(module, " << cppApiVariableName() << ");" << endl; + if (maxTypeIndex) + s << endl << INDENT << "Shiboken::Module::registerTypes(module, " << cppApiVariableName() << ");" << endl; s << endl << INDENT << "if (PyErr_Occurred()) {" << endl; { diff --git a/tests/samplebinding/typesystem_sample.xml b/tests/samplebinding/typesystem_sample.xml index 9a0ea9920..bced56f8d 100644 --- a/tests/samplebinding/typesystem_sample.xml +++ b/tests/samplebinding/typesystem_sample.xml @@ -18,6 +18,8 @@ <primitive-type name="unsigned long"/> <primitive-type name="std::string"/> + <primitive-type name="std::size_t" target-lang-api-name="PyLong"> + </primitive-type> <primitive-type name="Complex" target-lang-api-name="PyComplex"> <conversion-rule file="complex_conversions.h"/> <include file-name="complex.h" location="global"/> |