diff options
Diffstat (limited to 'sipgen')
-rw-r--r-- | sipgen/gencode.c | 494 |
1 files changed, 13 insertions, 481 deletions
diff --git a/sipgen/gencode.c b/sipgen/gencode.c index 0a9bc41..7d0dd63 100644 --- a/sipgen/gencode.c +++ b/sipgen/gencode.c @@ -75,7 +75,6 @@ static void generateConsolidatedCpp(sipSpec *pt, const char *codeDir, static void generateComponentCpp(sipSpec *pt, const char *codeDir, const char *consModule); static void generateSipImport(moduleDef *mod, FILE *fp); -static void generateSipImportVariables(FILE *fp); static void generateModInitStart(moduleDef *mod, int gen_c, FILE *fp); static void generateModDefinition(moduleDef *mod, const char *methods, FILE *fp); @@ -246,8 +245,6 @@ static void prCachedName(FILE *fp, nameDef *nd, const char *prefix); static void generateSignalTableEntry(sipSpec *pt, classDef *cd, overDef *sig, memberDef *md, int membernr, FILE *fp); static void generateTypesTable(sipSpec *pt, moduleDef *mod, FILE *fp); -static int py2OnlySlot(slotType st); -static int py2_5LaterSlot(slotType st); static int keepPyReference(argDef *ad); static int isDuplicateProtected(classDef *cd, overDef *target); static char getEncoding(argType atype); @@ -865,11 +862,7 @@ static void generateCompositeCpp(sipSpec *pt, const char *codeDir) "\n" "static void sip_import_component_module(PyObject *d, const char *name)\n" "{\n" -"#if PY_VERSION_HEX >= 0x02050000\n" " PyObject *mod = PyImport_ImportModule(name);\n" -"#else\n" -" PyObject *mod = PyImport_ImportModule((char *)name);\n" -"#endif\n" "\n" " /*\n" " * Note that we don't complain if the module can't be imported. This\n" @@ -891,11 +884,7 @@ static void generateCompositeCpp(sipSpec *pt, const char *codeDir) "\n" " PyObject *sipModule, *sipModuleDict;\n" "\n" -"#if PY_MAJOR_VERSION >= 3\n" " sipModule = PyModule_Create(&sip_module_def);\n" -"#else\n" -" sipModule = Py_InitModule(\"%s\", 0);\n" -"#endif\n" "\n" " if (sipModule == NULL)\n" " SIP_MODULE_RETURN(NULL);\n" @@ -956,11 +945,7 @@ static void generateConsolidatedCpp(sipSpec *pt, const char *codeDir, for (mod = pt->modules; mod != NULL; mod = mod->next) if (mod->container == pt->module) prcode(fp, -"#if PY_MAJOR_VERSION >= 3\n" -"extern PyObject *sip_init_%s(void);\n" -"#else\n" -"extern void sip_init_%s(void);\n" -"#endif\n" + "extern PyObject *sip_init_%s(void);\n" , mod->name , mod->name); @@ -980,11 +965,7 @@ static void generateConsolidatedCpp(sipSpec *pt, const char *codeDir, "{\n" " struct component {\n" " const char *name;\n" -"#if PY_MAJOR_VERSION >= 3\n" " PyObject *(*init)(void);\n" -"#else\n" -" void (*init)(void);\n" -"#endif\n" " };\n" "\n" " static struct component components[] = {\n" @@ -1003,27 +984,14 @@ static void generateConsolidatedCpp(sipSpec *pt, const char *codeDir, " const char *name;\n" " struct component *scd;\n" "\n" -"#if PY_MAJOR_VERSION >= 3\n" " name = PyBytes_AsString(arg);\n" -"#else\n" -" name = PyString_AsString(arg);\n" -"#endif\n" "\n" " if (name == NULL)\n" " return NULL;\n" "\n" " for (scd = components; scd->name != NULL; ++scd)\n" " if (strcmp(scd->name, name) == 0)\n" -"#if PY_MAJOR_VERSION >= 3\n" " return (*scd->init)();\n" -"#else\n" -" {\n" -" (*scd->init)();\n" -"\n" -" Py_INCREF(Py_None);\n" -" return Py_None;\n" -" }\n" -"#endif\n" "\n" " PyErr_Format(PyExc_ImportError, \"unknown component module %%s\", name);\n" "\n" @@ -1044,13 +1012,9 @@ static void generateConsolidatedCpp(sipSpec *pt, const char *codeDir, prcode(fp, "\n" -"#if PY_MAJOR_VERSION >= 3\n" " return PyModule_Create(&sip_module_def);\n" -"#else\n" -" Py_InitModule(\"%s\", sip_methods);\n" -"#endif\n" "}\n" - , mname); + ); closeFile(fp); free(cppfile); @@ -1088,18 +1052,10 @@ static void generateComponentCpp(sipSpec *pt, const char *codeDir, prcode(fp, " /* Ask the consolidated module to do the initialistion. */\n" -"#if PY_MAJOR_VERSION >= 3\n" " sip_result = PyObject_CallMethod(sip_mod, \"init\", \"y\", \"%s\");\n" -"#else\n" -" sip_result = PyObject_CallMethod(sip_mod, \"init\", \"s\", \"%s\");\n" -"#endif\n" " Py_DECREF(sip_mod);\n" "\n" -"#if PY_MAJOR_VERSION >= 3\n" " return sip_result;\n" -"#else\n" -" Py_XDECREF(sip_result);\n" -"#endif\n" "}\n" , pt->module->fullname->text , pt->module->fullname->text); @@ -1311,24 +1267,10 @@ static void generateCpp(sipSpec *pt, moduleDef *mod, const char *codeDir, for (od = mod->overs; od != NULL; od = od->next) if (od->common == md) { - if (py2OnlySlot(md->slot)) - prcode(fp, -"#if PY_MAJOR_VERSION < 3\n" - ); - else if (py2_5LaterSlot(md->slot)) - prcode(fp, -"#if PY_VERSION_HEX >= 0x02050000\n" - ); - prcode(fp, " {(void *)slot_%s, %s, {0, 0, 0}},\n" , md->pyname->text, slotName(md->slot)); - if (py2OnlySlot(md->slot) || py2_5LaterSlot(md->slot)) - prcode(fp, -"#endif\n" - ); - break; } } @@ -1336,15 +1278,6 @@ static void generateCpp(sipSpec *pt, moduleDef *mod, const char *codeDir, for (cd = mod->proxies; cd != NULL; cd = cd->next) for (md = cd->members; md != NULL; md = md->next) { - if (py2OnlySlot(md->slot)) - prcode(fp, -"#if PY_MAJOR_VERSION < 3\n" - ); - else if (py2_5LaterSlot(md->slot)) - prcode(fp, -"#if PY_VERSION_HEX >= 0x02050000\n" - ); - prcode(fp, " {(void *)slot_%L_%s, %s, ", cd->iff, md->pyname->text, slotName(md->slot)); @@ -1352,11 +1285,6 @@ static void generateCpp(sipSpec *pt, moduleDef *mod, const char *codeDir, prcode(fp, "},\n" ); - - if (py2OnlySlot(md->slot) || py2_5LaterSlot(md->slot)) - prcode(fp, -"#endif\n" - ); } prcode(fp, @@ -1430,23 +1358,9 @@ static void generateCpp(sipSpec *pt, moduleDef *mod, const char *codeDir, if ((stype = slotName(slot->slot)) != NULL) { - if (py2OnlySlot(slot->slot)) - prcode(fp, -"#if PY_MAJOR_VERSION < 3\n" - ); - else if (py2_5LaterSlot(slot->slot)) - prcode(fp, -"#if PY_VERSION_HEX >= 0x02050000\n" - ); - prcode(fp, " {(void *)slot_%C_%s, %s},\n" , ed->fqcname, slot->pyname->text, stype); - - if (py2OnlySlot(slot->slot) || py2_5LaterSlot(slot->slot)) - prcode(fp, -"#endif\n" - ); } } @@ -1904,15 +1818,9 @@ static void generateCpp(sipSpec *pt, moduleDef *mod, const char *codeDir, if (mod->container == pt->module) prcode(fp, "\n" -"#if PY_MAJOR_VERSION >= 3\n" "#define SIP_MODULE_DISCARD(r) Py_DECREF(r)\n" "#define SIP_MODULE_RETURN(r) return (r)\n" "PyObject *sip_init_%s()\n" -"#else\n" -"#define SIP_MODULE_DISCARD(r)\n" -"#define SIP_MODULE_RETURN(r) return\n" -"void sip_init_%s()\n" -"#endif\n" "{\n" , mname , mname); @@ -1966,31 +1874,12 @@ static void generateCpp(sipSpec *pt, moduleDef *mod, const char *codeDir, " PyObject *sipModule, *sipModuleDict;\n" ); - generateSipImportVariables(fp); - /* Generate any pre-initialisation code. */ generateCppCodeBlock(mod->preinitcode, fp); prcode(fp, " /* Initialise the module and get it's dictionary. */\n" -"#if PY_MAJOR_VERSION >= 3\n" " sipModule = PyModule_Create(&sip_module_def);\n" -"#elif PY_VERSION_HEX >= 0x02050000\n" -" sipModule = Py_InitModule(%N, sip_methods);\n" -"#else\n" - , mod->fullname); - - if (generating_c) - prcode(fp, -" sipModule = Py_InitModule((char *)%N, sip_methods);\n" - , mod->fullname); - else - prcode(fp, -" sipModule = Py_InitModule(const_cast<char *>(%N), sip_methods);\n" - , mod->fullname); - - prcode(fp, -"#endif\n" "\n" " if (sipModule == NULL)\n" " SIP_MODULE_RETURN(NULL);\n" @@ -2008,9 +1897,6 @@ static void generateCpp(sipSpec *pt, moduleDef *mod, const char *codeDir, " /* Export the module and publish it's API. */\n" " if (sipExportModule(&sipModuleAPI_%s,SIP_TQT_API_MAJOR_NR,SIP_TQT_API_MINOR_NR,0) < 0)\n" " {\n" -"#if !defined(SIP_USE_PYCAPSULE)\n" -" Py_DECREF(sip_sipmod);\n" -"#endif\n" " SIP_MODULE_DISCARD(sipModule);\n" " SIP_MODULE_RETURN(0);\n" " }\n" @@ -2034,9 +1920,6 @@ static void generateCpp(sipSpec *pt, moduleDef *mod, const char *codeDir, " /* Initialise the module now all its dependencies have been set up. */\n" " if (sipInitModule(&sipModuleAPI_%s,sipModuleDict) < 0)\n" " {\n" -"#if !defined(SIP_USE_PYCAPSULE)\n" -" Py_DECREF(sip_sipmod);\n" -"#endif\n" " SIP_MODULE_DISCARD(sipModule);\n" " SIP_MODULE_RETURN(0);\n" " }\n" @@ -2076,11 +1959,7 @@ static void generateCpp(sipSpec *pt, moduleDef *mod, const char *codeDir, prcode(fp, "\n" " if ((exceptionsTable[%d] = PyErr_NewException(\n" -"#if PY_MAJOR_VERSION >= 3\n" " \"%s.%s\",\n" -"#else\n" -" const_cast<char *>(\"%s.%s\"),\n" -"#endif\n" " " , xd->exceptionnr , xd->iff->module->name, xd->pyname @@ -2095,9 +1974,6 @@ static void generateCpp(sipSpec *pt, moduleDef *mod, const char *codeDir, prcode(fp, ",NULL)) == NULL || PyDict_SetItemString(sipModuleDict,\"%s\",exceptionsTable[%d]) < 0)\n" " {\n" -"#if !defined(SIP_USE_PYCAPSULE)\n" -" Py_DECREF(sip_sipmod);\n" -"#endif\n" " SIP_MODULE_DISCARD(sipModule);\n" " SIP_MODULE_RETURN(0);\n" " }\n" @@ -2215,8 +2091,6 @@ static void generateSipImport(moduleDef *mod, FILE *fp) { prcode(fp, " /* Get the SIP-TQt module's API. */\n" -"#if defined(SIP_USE_PYCAPSULE)\n" -"\n" ); if (generating_c) @@ -2235,71 +2109,7 @@ static void generateSipImport(moduleDef *mod, FILE *fp) " SIP_MODULE_DISCARD(sipModule);\n" " SIP_MODULE_RETURN(NULL);\n" " }\n" -"\n" -"#else\n" -"\n" -"#if PY_VERSION_HEX >= 0x02050000\n" -" sip_sipmod = PyImport_ImportModule(\"sip_tqt\");\n" -"#else\n" - , mod->name); - - if (generating_c) - prcode(fp, -" sip_sipmod = PyImport_ImportModule((char *)\"sip_tqt\");\n" - ); - else - prcode(fp, -" sip_sipmod = PyImport_ImportModule(const_cast<char *>(\"sip_tqt\"));\n" - ); - - prcode(fp, -"#endif\n" -"\n" -" if (sip_sipmod == NULL)\n" -" {\n" -" SIP_MODULE_DISCARD(sipModule);\n" -" SIP_MODULE_RETURN(NULL);\n" -" }\n" -"\n" -" sip_capiobj = PyDict_GetItemString(PyModule_GetDict(sip_sipmod), \"_C_API\");\n" -"\n" -" if (sip_capiobj == NULL || !PyCObject_Check(sip_capiobj))\n" -" {\n" -" Py_DECREF(sip_sipmod);\n" -" SIP_MODULE_DISCARD(sipModule);\n" -" SIP_MODULE_RETURN(NULL);\n" -" }\n" -"\n" - ); - - if (generating_c) - prcode(fp, -" sipAPI_%s = (const sipAPIDef *)PyCObject_AsVoidPtr(sip_capiobj);\n" , mod->name); - else - prcode(fp, -" sipAPI_%s = reinterpret_cast<const sipAPIDef *>(PyCObject_AsVoidPtr(sip_capiobj));\n" - , mod->name); - - prcode(fp, -"\n" -"#endif\n" -"\n" - ); -} - - -/* - * Generate the variables needed by generateSipImport(). - */ -static void generateSipImportVariables(FILE *fp) -{ - prcode(fp, -"#if !defined(SIP_USE_PYCAPSULE)\n" -" PyObject *sip_sipmod, *sip_capiobj;\n" -"#endif\n" -"\n" - ); } @@ -2312,17 +2122,10 @@ static void generateModInitStart(moduleDef *mod, int gen_c, FILE *fp) "\n" "\n" "/* The Python module initialisation function. */\n" -"#if PY_MAJOR_VERSION >= 3\n" "#define SIP_MODULE_ENTRY PyInit_%s\n" "#define SIP_MODULE_TYPE PyObject *\n" "#define SIP_MODULE_DISCARD(r) Py_DECREF(r)\n" "#define SIP_MODULE_RETURN(r) return (r)\n" -"#else\n" -"#define SIP_MODULE_ENTRY init%s\n" -"#define SIP_MODULE_TYPE void\n" -"#define SIP_MODULE_DISCARD(r)\n" -"#define SIP_MODULE_RETURN(r) return\n" -"#endif\n" "\n" "#if (defined(__GNUC__) && __GNUC__ >= 4) || defined(__clang__)\n" "#pragma GCC visibility push(default)\n" @@ -2350,7 +2153,6 @@ static void generateModDefinition(moduleDef *mod, const char *methods, { prcode(fp, "\n" -"#if PY_MAJOR_VERSION >= 3\n" " static PyModuleDef sip_module_def = {\n" " PyModuleDef_HEAD_INIT,\n" " \"%s\",\n" @@ -2362,7 +2164,6 @@ static void generateModDefinition(moduleDef *mod, const char *methods, " NULL,\n" " NULL\n" " };\n" -"#endif\n" , mod->fullname->text , methods); } @@ -4363,11 +4164,7 @@ static void generateVariableGetter(ifaceFileDef *scope, varDef *vd, FILE *fp) case utf8_string_type: if (vd->type.nrderefs == 0) prcode(fp, -"#if PY_MAJOR_VERSION >= 3\n" " return PyUnicode_FromStringAndSize(&sipVal, 1);\n" -"#else\n" -" return PyUnicode_DecodeUTF8(&sipVal, 1, NULL);\n" -"#endif\n" ); else prcode(fp, @@ -4377,11 +4174,7 @@ static void generateVariableGetter(ifaceFileDef *scope, varDef *vd, FILE *fp) " return Py_None;\n" " }\n" "\n" -"#if PY_MAJOR_VERSION >= 3\n" " return PyUnicode_FromString(sipVal);\n" -"#else\n" -" return PyUnicode_DecodeUTF8(sipVal, strlen(sipVal), NULL);\n" -"#endif\n" ); break; @@ -4394,7 +4187,7 @@ static void generateVariableGetter(ifaceFileDef *scope, varDef *vd, FILE *fp) if (vd->type.nrderefs == 0) prcode(fp, -" return SIPBytes_FromStringAndSize(%s&sipVal, 1);\n" +" return PyBytes_FromStringAndSize(%s&sipVal, 1);\n" , cast); else prcode(fp, @@ -4404,7 +4197,7 @@ static void generateVariableGetter(ifaceFileDef *scope, varDef *vd, FILE *fp) " return Py_None;\n" " }\n" "\n" -" return SIPBytes_FromString(%ssipVal);\n" +" return PyBytes_FromString(%ssipVal);\n" , cast); } @@ -4458,7 +4251,7 @@ static void generateVariableGetter(ifaceFileDef *scope, varDef *vd, FILE *fp) case cint_type: case int_type: prcode(fp, -" return SIPLong_FromLong(sipVal);\n" +" return PyLong_FromLong(sipVal);\n" ); break; @@ -4789,7 +4582,7 @@ static int generateObjToCppConversion(argDef *ad,FILE *fp) break; case enum_type: - prcode(fp, "(%E)SIPLong_AsLong(sipPy);\n" + prcode(fp, "(%E)PyLong_AsLong(sipPy);\n" , ad->u.ed); break; @@ -4866,7 +4659,7 @@ static int generateObjToCppConversion(argDef *ad,FILE *fp) case bool_type: case cbool_type: - rhs = "(bool)SIPLong_AsLong(sipPy)"; + rhs = "(bool)PyLong_AsLong(sipPy)"; break; case ushort_type: @@ -4874,7 +4667,7 @@ static int generateObjToCppConversion(argDef *ad,FILE *fp) break; case short_type: - rhs = "(short)SIPLong_AsLong(sipPy)"; + rhs = "(short)PyLong_AsLong(sipPy)"; break; case uint_type: @@ -4883,7 +4676,7 @@ static int generateObjToCppConversion(argDef *ad,FILE *fp) case int_type: case cint_type: - rhs = "(int)SIPLong_AsLong(sipPy)"; + rhs = "(int)PyLong_AsLong(sipPy)"; break; case ulong_type: @@ -5146,15 +4939,6 @@ static void generateSlot(moduleDef *mod, classDef *cd, enumDef *ed, "\n" ); - if (py2OnlySlot(md->slot)) - prcode(fp, -"#if PY_MAJOR_VERSION < 3\n" - ); - else if (py2_5LaterSlot(md->slot)) - prcode(fp, -"#if PY_VERSION_HEX >= 0x02050000\n" - ); - if (!generating_c) { prcode(fp, @@ -5204,7 +4988,7 @@ static void generateSlot(moduleDef *mod, classDef *cd, enumDef *ed, , (md->slot == cmp_slot ? "-2" : (ret_int ? "-1" : "0"))); else prcode(fp, -" %S sipCpp = static_cast<%S>(SIPLong_AsLong(sipSelf));\n" +" %S sipCpp = static_cast<%S>(PyLong_AsLong(sipSelf));\n" "\n" , fqcname, fqcname); } @@ -5311,11 +5095,6 @@ static void generateSlot(moduleDef *mod, classDef *cd, enumDef *ed, prcode(fp, "}\n" ); - - if (py2OnlySlot(md->slot) || py2_5LaterSlot(md->slot)) - prcode(fp, -"#endif\n" - ); } @@ -5564,7 +5343,6 @@ static void generateClassFunctions(sipSpec *pt, moduleDef *mod, classDef *cd, prcode(fp, "\n" "\n" -"#if PY_MAJOR_VERSION >= 3\n" ); if (!generating_c) @@ -5596,7 +5374,6 @@ static void generateClassFunctions(sipSpec *pt, moduleDef *mod, classDef *cd, "\n" " return sipRes;\n" "}\n" -"#endif\n" ); } @@ -5605,7 +5382,6 @@ static void generateClassFunctions(sipSpec *pt, moduleDef *mod, classDef *cd, prcode(fp, "\n" "\n" -"#if PY_MAJOR_VERSION >= 3\n" ); if (!generating_c) @@ -5629,158 +5405,6 @@ static void generateClassFunctions(sipSpec *pt, moduleDef *mod, classDef *cd, prcode(fp, "}\n" -"#endif\n" - ); - } - - if (cd->readbufcode != NULL) - { - prcode(fp, -"\n" -"\n" -"#if PY_MAJOR_VERSION < 3\n" - ); - - if (!generating_c) - prcode(fp, -"extern \"C\" {static SIP_SSIZE_T getreadbuffer_%C(PyObject *, void *, SIP_SSIZE_T, void **);}\n" - , classFTQCName(cd)); - - prcode(fp, -"static SIP_SSIZE_T getreadbuffer_%C(PyObject *%s, void *sipCppV, SIP_SSIZE_T %s, void **%s)\n" -"{\n" -" ", classFTQCName(cd) - , argName("sipSelf", cd->readbufcode) - , argName("sipSegment", cd->readbufcode) - , argName("sipPtrPtr", cd->readbufcode)); - - generateClassFromVoid(cd, "sipCpp", "sipCppV", fp); - - prcode(fp, ";\n" -" SIP_SSIZE_T sipRes;\n" -"\n" - ); - - generateCppCodeBlock(cd->readbufcode, fp); - - prcode(fp, -"\n" -" return sipRes;\n" -"}\n" -"#endif\n" - ); - } - - if (cd->writebufcode != NULL) - { - prcode(fp, -"\n" -"\n" -"#if PY_MAJOR_VERSION < 3\n" - ); - - if (!generating_c) - prcode(fp, -"extern \"C\" {static SIP_SSIZE_T getwritebuffer_%C(PyObject *, void *, SIP_SSIZE_T, void **);}\n" - , classFTQCName(cd)); - - prcode(fp, -"static SIP_SSIZE_T getwritebuffer_%C(PyObject *%s, void *sipCppV, SIP_SSIZE_T %s, void **%s)\n" -"{\n" -" ", classFTQCName(cd) - , argName("sipSelf", cd->writebufcode) - , argName("sipSegment", cd->writebufcode) - , argName("sipPtrPtr", cd->writebufcode)); - - generateClassFromVoid(cd, "sipCpp", "sipCppV", fp); - - prcode(fp, ";\n" -" SIP_SSIZE_T sipRes;\n" -"\n" - ); - - generateCppCodeBlock(cd->writebufcode, fp); - - prcode(fp, -"\n" -" return sipRes;\n" -"}\n" -"#endif\n" - ); - } - - if (cd->segcountcode != NULL) - { - prcode(fp, -"\n" -"\n" -"#if PY_MAJOR_VERSION < 3\n" - ); - - if (!generating_c) - prcode(fp, -"extern \"C\" {static SIP_SSIZE_T getsegcount_%C(PyObject *, void *, SIP_SSIZE_T *);}\n" - , classFTQCName(cd)); - - prcode(fp, -"static SIP_SSIZE_T getsegcount_%C(PyObject *%s, void *sipCppV, SIP_SSIZE_T *%s)\n" -"{\n" -" ", classFTQCName(cd) - , argName("sipSelf", cd->segcountcode) - , argName("sipLenPtr", cd->segcountcode)); - - generateClassFromVoid(cd, "sipCpp", "sipCppV", fp); - - prcode(fp, ";\n" -" SIP_SSIZE_T sipRes;\n" -"\n" - ); - - generateCppCodeBlock(cd->segcountcode, fp); - - prcode(fp, -"\n" -" return sipRes;\n" -"}\n" -"#endif\n" - ); - } - - if (cd->charbufcode != NULL) - { - prcode(fp, -"\n" -"\n" -"#if PY_MAJOR_VERSION < 3\n" - ); - - if (!generating_c) - prcode(fp, -"extern \"C\" {static SIP_SSIZE_T getcharbuffer_%C(PyObject *, void *, SIP_SSIZE_T, void **);}\n" - , classFTQCName(cd)); - - prcode(fp, -"static SIP_SSIZE_T getcharbuffer_%C(PyObject *%s, void *sipCppV, SIP_SSIZE_T %s, void **%s)\n" -"{\n" -" ", classFTQCName(cd) - , argName("sipSelf", cd->charbufcode) - , argName("sipSegment", cd->charbufcode) - , argName("sipPtrPtr", cd->charbufcode)); - - generateClassFromVoid(cd, "sipCpp", "sipCppV", fp); - - prcode(fp, ";\n" -" SIP_SSIZE_T sipRes;\n" -"\n" - ); - - generateCppCodeBlock(cd->charbufcode, fp); - - prcode(fp, -"\n" -" return sipRes;\n" -"}\n" -"#endif\n" ); } @@ -8962,23 +8586,9 @@ static void generateTypeDefinition(sipSpec *pt, classDef *cd, FILE *fp) if ((stype = slotName(md->slot)) != NULL) { - if (py2OnlySlot(md->slot)) - prcode(fp, -"#if PY_MAJOR_VERSION < 3\n" - ); - else if (py2_5LaterSlot(md->slot)) - prcode(fp, -"#if PY_VERSION_HEX >= 0x02050000\n" - ); - prcode(fp, " {(void *)slot_%L_%s, %s},\n" , cd->iff, md->pyname->text, stype); - - if (py2OnlySlot(md->slot) || py2_5LaterSlot(md->slot)) - prcode(fp, -"#endif\n" - ); } } @@ -9398,10 +9008,6 @@ static void generateTypeDefinition(sipSpec *pt, classDef *cd, FILE *fp) " 0,\n" ); - prcode(fp, -"#if PY_MAJOR_VERSION >= 3\n" - ); - if (cd->getbufcode != NULL) prcode(fp, " getbuffer_%C,\n" @@ -9420,50 +9026,6 @@ static void generateTypeDefinition(sipSpec *pt, classDef *cd, FILE *fp) " 0,\n" ); - prcode(fp, -"#else\n" - ); - - if (cd->readbufcode != NULL) - prcode(fp, -" getreadbuffer_%C,\n" - , classFTQCName(cd)); - else - prcode(fp, -" 0,\n" - ); - - if (cd->writebufcode != NULL) - prcode(fp, -" getwritebuffer_%C,\n" - , classFTQCName(cd)); - else - prcode(fp, -" 0,\n" - ); - - if (cd->segcountcode != NULL) - prcode(fp, -" getsegcount_%C,\n" - , classFTQCName(cd)); - else - prcode(fp, -" 0,\n" - ); - - if (cd->charbufcode != NULL) - prcode(fp, -" getcharbuffer_%C,\n" - , classFTQCName(cd)); - else - prcode(fp, -" 0,\n" - ); - - prcode(fp, -"#endif\n" - ); - if (needDealloc(cd)) prcode(fp, " dealloc_%L,\n" @@ -9615,28 +9177,6 @@ static void generateSignalTableEntry(sipSpec *pt, classDef *cd, overDef *sig, /* - * Return TRUE if the slot is specific to Python v2. - */ -static int py2OnlySlot(slotType st) -{ - /* - * Note that we place interpretations on div_slot and idiv_slot for Python - * v3 so they are not included. - */ - return (st == long_slot || st == cmp_slot); -} - - -/* - * Return TRUE if the slot is specific to Python v2.5 and later. - */ -static int py2_5LaterSlot(slotType st) -{ - return (st == index_slot); -} - - -/* * Return the sip module's string equivalent of a slot. */ static const char *slotName(slotType st) @@ -10912,11 +10452,7 @@ static void generateHandleResult(overDef *od, int isNew, int result_size, case utf8_string_type: if (ad->nrderefs == 0) prcode(fp, -"#if PY_MAJOR_VERSION >= 3\n" " %s PyUnicode_FromStringAndSize(&%s, 1);\n" -"#else\n" -" %s PyUnicode_DecodeUTF8(&%s, 1, NULL);\n" -"#endif\n" , prefix, vname , prefix, vname); else @@ -10927,11 +10463,7 @@ static void generateHandleResult(overDef *od, int isNew, int result_size, " return Py_None;\n" " }\n" "\n" -"#if PY_MAJOR_VERSION >= 3\n" " %s PyUnicode_FromString(%s);\n" -"#else\n" -" %s PyUnicode_DecodeUTF8(%s, strlen(%s), NULL);\n" -"#endif\n" , vname , prefix, vname , prefix, vname, vname); @@ -10943,7 +10475,7 @@ static void generateHandleResult(overDef *od, int isNew, int result_size, case string_type: if (ad->nrderefs == 0) prcode(fp, -" %s SIPBytes_FromStringAndSize(%s&%s,1);\n" +" %s PyBytes_FromStringAndSize(%s&%s,1);\n" ,prefix,(ad->atype != string_type) ? "(char *)" : "",vname); else prcode(fp, @@ -10953,7 +10485,7 @@ static void generateHandleResult(overDef *od, int isNew, int result_size, " return Py_None;\n" " }\n" "\n" -" %s SIPBytes_FromString(%s%s);\n" +" %s PyBytes_FromString(%s%s);\n" ,vname ,prefix,(ad->atype != string_type) ? "(char *)" : "",vname); @@ -10994,7 +10526,7 @@ static void generateHandleResult(overDef *od, int isNew, int result_size, case int_type: case cint_type: prcode(fp, -" %s SIPLong_FromLong(%s);\n" +" %s PyLong_FromLong(%s);\n" ,prefix,vname); break; |