~ubuntu-branches/ubuntu/karmic/sip4-qt3/karmic

« back to all changes in this revision

Viewing changes to sipgen/gencode.c

  • Committer: Bazaar Package Importer
  • Author(s): Jonathan Riddell
  • Date: 2009-06-16 16:40:28 UTC
  • mfrom: (1.1.14 upstream)
  • Revision ID: james.westby@ubuntu.com-20090616164028-p2qwvc0p2stae97d
Tags: 4.8.1-0ubuntu1
New upstream release

Show diffs side-by-side

added added

removed removed

Lines of Context:
610
610
"#define sipRegisterPyType           sipAPI_%s->api_register_py_type\n"
611
611
"#define sipTypeFromPyTypeObject     sipAPI_%s->api_type_from_py_type_object\n"
612
612
"#define sipTypeScope                sipAPI_%s->api_type_scope\n"
613
 
"#define sipResolveTypedef(n)        sipAPI_%s->api_resolve_typedef((n), &sipModuleAPI_%s)\n"
 
613
"#define sipResolveTypedef           sipAPI_%s->api_resolve_typedef\n"
614
614
"#define sipRegisterAttributeGetter  sipAPI_%s->api_register_attribute_getter\n"
 
615
"#define sipIsAPIEnabled             sipAPI_%s->api_is_api_enabled\n"
 
616
"#define sipExportModule             sipAPI_%s->api_export_module\n"
 
617
"#define sipInitModule               sipAPI_%s->api_init_module\n"
615
618
"\n"
616
619
"/* These are deprecated. */\n"
617
620
"#define sipMapStringToClass         sipAPI_%s->api_map_string_to_class\n"
719
722
        ,mname
720
723
        ,mname
721
724
        ,mname
 
725
        ,mname
 
726
        ,mname
722
727
        ,mname);
723
728
 
724
729
    /* The name strings. */
1425
1430
        ed->enum_idx = enum_idx++;
1426
1431
 
1427
1432
        prcode(fp,
1428
 
"    {{0, 0, 0, SIP_TYPE_ENUM, %n, {0}}, %n, ", ed->cname, ed->pyname);
 
1433
"    {{-1, 0, 0, SIP_TYPE_ENUM, %n, {0}}, %n, ", ed->cname, ed->pyname);
1429
1434
 
1430
1435
        if (ed->ecd == NULL)
1431
1436
            prcode(fp, "-1");
1684
1689
"    %s,\n"
1685
1690
"    %s,\n"
1686
1691
"    %s,\n"
 
1692
"    0,\n"
 
1693
"    0,\n"
1687
1694
"    0\n"
1688
1695
"};\n"
1689
1696
        , mname
1746
1753
        prcode(fp,
1747
1754
"\n"
1748
1755
"#if PY_MAJOR_VERSION >= 3\n"
 
1756
"#define SIP_MODULE_DISCARD(r)   Py_DECREF(r)\n"
1749
1757
"#define SIP_MODULE_RETURN(r)    return (r)\n"
1750
1758
"PyObject *sip_init_%s()\n"
1751
1759
"#else\n"
 
1760
"#define SIP_MODULE_DISCARD(r)\n"
1752
1761
"#define SIP_MODULE_RETURN(r)    return\n"
1753
1762
"void sip_init_%s()\n"
1754
1763
"#endif\n"
1829
1838
 
1830
1839
    prcode(fp,
1831
1840
"    /* Export the module and publish it's API. */\n"
1832
 
"    if (sipAPI_%s->api_export_module(&sipModuleAPI_%s,SIP_API_MAJOR_NR,SIP_API_MINOR_NR,0) < 0)\n"
 
1841
"    if (sipExportModule(&sipModuleAPI_%s,SIP_API_MAJOR_NR,SIP_API_MINOR_NR,0) < 0)\n"
1833
1842
"    {\n"
1834
1843
"        Py_DECREF(sip_sipmod);\n"
1835
 
"        Py_DECREF(sipModule);\n"
 
1844
"        SIP_MODULE_DISCARD(sipModule);\n"
1836
1845
"        SIP_MODULE_RETURN(0);\n"
1837
1846
"    }\n"
1838
 
        , mname
1839
1847
        , mname);
1840
1848
 
1841
1849
    if (pluginPyQt4(pt))
1854
1862
 
1855
1863
    prcode(fp,
1856
1864
"    /* Initialise the module now all its dependencies have been set up. */\n"
1857
 
"    if (sipAPI_%s->api_init_module(&sipModuleAPI_%s,sipModuleDict) < 0)\n"
 
1865
"    if (sipInitModule(&sipModuleAPI_%s,sipModuleDict) < 0)\n"
1858
1866
"    {\n"
1859
1867
"        Py_DECREF(sip_sipmod);\n"
1860
 
"        Py_DECREF(sipModule);\n"
 
1868
"        SIP_MODULE_DISCARD(sipModule);\n"
1861
1869
"        SIP_MODULE_RETURN(0);\n"
1862
1870
"    }\n"
1863
 
        , mname
1864
1871
        , mname);
1865
1872
 
1866
1873
    mod_nr = 0;
1896
1903
 
1897
1904
        prcode(fp,
1898
1905
"\n"
1899
 
"    if ((exceptionsTable[%d] = PyErr_NewException((char *)\"%s.%s\",", xd->exceptionnr, xd->iff->module->name, xd->pyname);
 
1906
"    if ((exceptionsTable[%d] = PyErr_NewException(\n"
 
1907
"#if PY_MAJOR_VERSION >= 3\n"
 
1908
"            \"%s.%s\",\n"
 
1909
"#else\n"
 
1910
"            const_cast<char *>(\"%s.%s\"),\n"
 
1911
"#endif\n"
 
1912
"            "
 
1913
            , xd->exceptionnr
 
1914
            , xd->iff->module->name, xd->pyname
 
1915
            , xd->iff->module->name, xd->pyname);
1900
1916
 
1901
1917
        if (xd->bibase != NULL)
1902
1918
            prcode(fp, "PyExc_%s", xd->bibase);
1906
1922
            prcode(fp, "sipException_%C", xd->base->iff->fqcname);
1907
1923
 
1908
1924
        prcode(fp, ",NULL)) == NULL || PyDict_SetItemString(sipModuleDict,\"%s\",exceptionsTable[%d]) < 0)\n"
1909
 
"        return;\n"
1910
 
"        {\n"
1911
 
"            Py_DECREF(sip_sipmod);\n"
1912
 
"            Py_DECREF(sipModule);\n"
1913
 
"            SIP_MODULE_RETURN(0);\n"
1914
 
"        }\n"
 
1925
"    {\n"
 
1926
"        Py_DECREF(sip_sipmod);\n"
 
1927
"        SIP_MODULE_DISCARD(sipModule);\n"
 
1928
"        SIP_MODULE_RETURN(0);\n"
 
1929
"    }\n"
1915
1930
            , xd->pyname, xd->exceptionnr);
1916
1931
    }
1917
1932
 
2060
2075
"\n"
2061
2076
"    if (sip_sipmod == NULL)\n"
2062
2077
"    {\n"
2063
 
"        Py_DECREF(sipModule);\n"
 
2078
"        SIP_MODULE_DISCARD(sipModule);\n"
2064
2079
"        SIP_MODULE_RETURN(NULL);\n"
2065
2080
"    }\n"
2066
2081
"\n"
2069
2084
"    if (sip_capiobj == NULL || !PyCObject_Check(sip_capiobj))\n"
2070
2085
"    {\n"
2071
2086
"        Py_DECREF(sip_sipmod);\n"
2072
 
"        Py_DECREF(sipModule);\n"
 
2087
"        SIP_MODULE_DISCARD(sipModule);\n"
2073
2088
"        SIP_MODULE_RETURN(NULL);\n"
2074
2089
"    }\n"
2075
2090
"\n"
2114
2129
"#if PY_MAJOR_VERSION >= 3\n"
2115
2130
"#define SIP_MODULE_ENTRY        PyInit_%s\n"
2116
2131
"#define SIP_MODULE_TYPE         PyObject *\n"
 
2132
"#define SIP_MODULE_DISCARD(r)   Py_DECREF(r)\n"
2117
2133
"#define SIP_MODULE_RETURN(r)    return (r)\n"
2118
2134
"#else\n"
2119
2135
"#define SIP_MODULE_ENTRY        init%s\n"
2120
2136
"#define SIP_MODULE_TYPE         void\n"
 
2137
"#define SIP_MODULE_DISCARD(r)\n"
2121
2138
"#define SIP_MODULE_RETURN(r)    return\n"
2122
2139
"#endif\n"
2123
2140
"\n"
3322
3339
"%sMappedTypeDef %sMappedTypeDef_%s_%T = {\n"
3323
3340
"%s"
3324
3341
"    {\n"
3325
 
"        0,\n"
 
3342
"        -1,\n"
3326
3343
"        0,\n"
3327
3344
"        0,\n"
3328
3345
"        SIP_TYPE_MAPPED,\n"
7792
7809
    int nr_derefs = ad->nrderefs;
7793
7810
    int is_reference = isReference(ad);
7794
7811
 
7795
 
    if (use_typename && td != NULL && !noTypeName(td))
 
7812
    if (use_typename && td != NULL && !noTypeName(td) && !isArraySize(ad))
7796
7813
    {
7797
7814
        if (isConstArg(ad) && !isConstArg(&td->type))
7798
7815
            prcode(fp, "const ");
8427
8444
"%sClassTypeDef %sType_%s_%C = {\n"
8428
8445
"%s"
8429
8446
"    {\n"
8430
 
"        0,\n"
 
8447
"        -1,\n"
8431
8448
"        0,\n"
8432
8449
"        0,\n"
8433
8450
"        "