From 162fc8650646e8eeb2f7ff631a955e6ec1d21b0e Mon Sep 17 00:00:00 2001 From: Rex Dieter Date: Jun 11 2009 22:04:41 +0000 Subject: incremental upstream patch to fix build --- diff --git a/PyKDE-3.16.3.patch b/PyKDE-3.16.3.patch new file mode 100644 index 0000000..c63a99b --- /dev/null +++ b/PyKDE-3.16.3.patch @@ -0,0 +1,2302 @@ +diff -ruN PyKDE-3.16.2/configure.py PyKDE-3.16.3/configure.py +--- PyKDE-3.16.2/configure.py 2008-11-13 17:28:26.000000000 +0000 ++++ PyKDE-3.16.3/configure.py 2009-06-10 15:38:00.000000000 +0100 +@@ -54,7 +54,7 @@ + kde_version_extra = None + kde_max_version = 0x030503 + +-sip_min_v4_version = 0x040501 ++sip_min_v4_version = 0x040800 + qt_min_version = 0x030200 + pyqt_min_version = 0x031000 + +diff -ruN PyKDE-3.16.2/sip/kabc/addressbook.sip PyKDE-3.16.3/sip/kabc/addressbook.sip +--- PyKDE-3.16.2/sip/kabc/addressbook.sip 2008-03-04 20:47:14.000000000 +0000 ++++ PyKDE-3.16.3/sip/kabc/addressbook.sip 2009-06-10 17:47:59.000000000 +0100 +@@ -208,7 +208,7 @@ + for (int i = 0; i < PyList_Size (sipPy); i++) + { + elem = PyList_GET_ITEM (sipPy, i); +- cpp = (KABC::Resource *)sipForceConvertTo_KABC_Resource (elem, &iserr); ++ cpp = (KABC::Resource *)sipForceConvertToType(elem, sipType_KABC_Resource, sipTransferObj, SIP_NO_CONVERTORS, NULL, &iserr); + + if (iserr) + { +diff -ruN PyKDE-3.16.2/sip/kabc/addressee.sip PyKDE-3.16.3/sip/kabc/addressee.sip +--- PyKDE-3.16.2/sip/kabc/addressee.sip 2008-03-04 20:47:14.000000000 +0000 ++++ PyKDE-3.16.3/sip/kabc/addressee.sip 2009-06-10 17:48:19.000000000 +0100 +@@ -356,7 +356,7 @@ + QValueList::Iterator it; + for( it = cpplist->begin(); it != cpplist->end(); ++it ) + { +- if (((inst = sipBuildResult (NULL, "N", new KABC::Addressee (*it), sipClass_KABC_Addressee)) == NULL) ++ if (((inst = sipConvertFromNewType(new KABC::Addressee (*it), sipType_KABC_Addressee, NULL)) == NULL) + || PyList_Append (pylist, inst) < 0) + { + Py_DECREF (pylist); +@@ -381,7 +381,7 @@ + for (int i = 0; i < PyList_Size (sipPy); i++) + { + elem = PyList_GET_ITEM (sipPy, i); +- cpp = (KABC::Addressee *)sipForceConvertTo_KABC_Addressee (elem, &iserr); ++ cpp = (KABC::Addressee *)sipForceConvertToType(elem, sipType_KABC_Addressee, sipTransferObj, SIP_NOT_NONE|SIP_NO_CONVERTORS, NULL, &iserr); + + if (iserr) + { +@@ -423,7 +423,7 @@ + QValueList::Iterator it; + for( it = cpplist->begin(); it != cpplist->end(); ++it ) + { +- if (((inst = sipBuildResult (NULL, "N", new KABC::Address (*it), sipClass_KABC_Address)) == NULL) ++ if (((inst = sipConvertFromNewType(new KABC::Address (*it), sipType_KABC_Address, NULL)) == NULL) + || PyList_Append (pylist, inst) < 0) + { + Py_DECREF (pylist); +@@ -448,7 +448,7 @@ + for (int i = 0; i < PyList_Size (sipPy); i++) + { + elem = PyList_GET_ITEM (sipPy, i); +- cpp = (KABC::Address *)sipForceConvertTo_KABC_Address (elem, &iserr); ++ cpp = (KABC::Address *)sipForceConvertToType(elem, sipType_KABC_Address, sipTransferObj, SIP_NOT_NONE|SIP_NO_CONVERTORS, NULL, &iserr); + + if (iserr) + { +diff -ruN PyKDE-3.16.2/sip/kabc/distributionlist.sip PyKDE-3.16.3/sip/kabc/distributionlist.sip +--- PyKDE-3.16.2/sip/kabc/distributionlist.sip 2008-03-04 20:47:14.000000000 +0000 ++++ PyKDE-3.16.3/sip/kabc/distributionlist.sip 2009-06-10 17:48:50.000000000 +0100 +@@ -129,7 +129,7 @@ + QValueList::Iterator it; + for( it = cpplist->begin(); it != cpplist->end(); ++it ) + { +- if (((inst = sipBuildResult (NULL, "N", new KABC::DistributionList::Entry (*it), sipClass_KABC_DistributionList_Entry)) == NULL) ++ if (((inst = sipConvertFromNewType(new KABC::DistributionList::Entry (*it), sipType_KABC_DistributionList_Entry, NULL)) == NULL) + || PyList_Append (pylist, inst) < 0) + { + Py_DECREF (pylist); +@@ -154,7 +154,7 @@ + for (int i = 0; i < PyList_Size (sipPy); i++) + { + elem = PyList_GET_ITEM (sipPy, i); +- cpp = (KABC::DistributionList::Entry *)sipForceConvertTo_KABC_DistributionList_Entry (elem, &iserr); ++ cpp = (KABC::DistributionList::Entry *)sipForceConvertToType(elem, sipType_KABC_DistributionList_Entry, sipTransferObj, SIP_NOT_NONE|SIP_NO_CONVERTORS, NULL, &iserr); + + if (iserr) + { +diff -ruN PyKDE-3.16.2/sip/kabc/field.sip PyKDE-3.16.3/sip/kabc/field.sip +--- PyKDE-3.16.2/sip/kabc/field.sip 2008-03-04 20:47:14.000000000 +0000 ++++ PyKDE-3.16.3/sip/kabc/field.sip 2009-06-10 17:49:05.000000000 +0100 +@@ -113,7 +113,7 @@ + QValueList::Iterator it; + for( it = cpplist->begin(); it != cpplist->end(); ++it ) + { +- if (((inst = sipBuildResult (NULL, "N", (KABC::Field *) (*it), sipClass_KABC_Field)) == NULL) ++ if (((inst = sipConvertFromType((KABC::Field *)(*it), sipType_KABC_Field, NULL)) == NULL) + || PyList_Append (pylist, inst) < 0) + { + Py_DECREF (pylist); +@@ -138,7 +138,7 @@ + for (int i = 0; i < PyList_Size (sipPy); i++) + { + elem = PyList_GET_ITEM (sipPy, i); +- cpp = (KABC::Field *)sipForceConvertTo_KABC_Field (elem, &iserr); ++ cpp = (KABC::Field *)sipForceConvertToType(elem, sipType_KABC_Field, sipTransferObj, SIP_NO_CONVERTORS, NULL, &iserr); + + if (iserr) + { +diff -ruN PyKDE-3.16.2/sip/kabc/key.sip PyKDE-3.16.3/sip/kabc/key.sip +--- PyKDE-3.16.2/sip/kabc/key.sip 2008-03-04 20:47:14.000000000 +0000 ++++ PyKDE-3.16.3/sip/kabc/key.sip 2009-06-10 17:49:13.000000000 +0100 +@@ -97,7 +97,7 @@ + QValueList::Iterator it; + for( it = cpplist->begin(); it != cpplist->end(); ++it ) + { +- if (((inst = sipBuildResult (NULL, "N", new KABC::Key (*it), sipClass_KABC_Key)) == NULL) ++ if (((inst = sipConvertFromNewType(new KABC::Key(*it), sipType_KABC_Key, NULL)) == NULL) + || PyList_Append (pylist, inst) < 0) + { + Py_DECREF (pylist); +@@ -122,7 +122,7 @@ + for (int i = 0; i < PyList_Size (sipPy); i++) + { + elem = PyList_GET_ITEM (sipPy, i); +- cpp = (KABC::Key *)sipForceConvertTo_KABC_Key (elem, &iserr); ++ cpp = (KABC::Key *)sipForceConvertToType(elem, sipType_KABC_Key, sipTransferObj, SIP_NOT_NONE|SIP_NO_CONVERTORS, NULL, &iserr); + + if (iserr) + { +diff -ruN PyKDE-3.16.2/sip/kabc/ldapclient.sip PyKDE-3.16.3/sip/kabc/ldapclient.sip +--- PyKDE-3.16.2/sip/kabc/ldapclient.sip 2008-03-04 20:47:14.000000000 +0000 ++++ PyKDE-3.16.3/sip/kabc/ldapclient.sip 2009-06-10 17:49:22.000000000 +0100 +@@ -196,7 +196,7 @@ + QValueList::Iterator it; + for( it = cpplist->begin(); it != cpplist->end(); ++it ) + { +- if (((inst = sipBuildResult (NULL, "N", new KABC::LdapResult (*it), sipClass_KABC_LdapResult)) == NULL) ++ if (((inst = sipConvertFromNewType(new KABC::LdapResult(*it), sipType_KABC_LdapResult, NULL)) == NULL) + || PyList_Append (pylist, inst) < 0) + { + Py_DECREF (pylist); +@@ -221,7 +221,7 @@ + for (int i = 0; i < PyList_Size (sipPy); i++) + { + elem = PyList_GET_ITEM (sipPy, i); +- cpp = (KABC::LdapResult *)sipForceConvertTo_KABC_LdapResult (elem, &iserr); ++ cpp = (KABC::LdapResult *)sipForceConvertToType(elem, sipType_KABC_LdapResult, sipTransferObj, SIP_NOT_NONE|SIP_NO_CONVERTORS, NULL, &iserr); + + if (iserr) + { +diff -ruN PyKDE-3.16.2/sip/kabc/phonenumber.sip PyKDE-3.16.3/sip/kabc/phonenumber.sip +--- PyKDE-3.16.2/sip/kabc/phonenumber.sip 2008-03-04 20:47:14.000000000 +0000 ++++ PyKDE-3.16.3/sip/kabc/phonenumber.sip 2009-06-10 17:49:31.000000000 +0100 +@@ -144,7 +144,7 @@ + QValueList::Iterator it; + for( it = cpplist->begin(); it != cpplist->end(); ++it ) + { +- if (((inst = sipBuildResult (NULL, "N", new KABC::PhoneNumber (*it), sipClass_KABC_PhoneNumber)) == NULL) ++ if (((inst = sipConvertFromNewType(new KABC::PhoneNumber(*it), sipType_KABC_PhoneNumber, NULL)) == NULL) + || PyList_Append (pylist, inst) < 0) + { + Py_DECREF (pylist); +@@ -169,7 +169,7 @@ + for (int i = 0; i < PyList_Size (sipPy); i++) + { + elem = PyList_GET_ITEM (sipPy, i); +- cpp = (KABC::PhoneNumber *)sipForceConvertTo_KABC_PhoneNumber (elem, &iserr); ++ cpp = (KABC::PhoneNumber *)sipForceConvertToType(elem, sipType_KABC_PhoneNumber, sipTransferObj, SIP_NOT_NONE|SIP_NO_CONVERTORS, NULL, &iserr); + + if (iserr) + { +diff -ruN PyKDE-3.16.2/sip/kdecore/bytearray.sip PyKDE-3.16.3/sip/kdecore/bytearray.sip +--- PyKDE-3.16.2/sip/kdecore/bytearray.sip 2008-11-13 17:38:05.000000000 +0000 ++++ PyKDE-3.16.3/sip/kdecore/bytearray.sip 2009-06-10 22:30:28.000000000 +0100 +@@ -60,56 +60,64 @@ + + void dcop_add (QDataStream&, SIP_PYDICT, QCString); + %MethodCode +- int iserr = 0; +- if (*a2 == "QMap") ++ const sipTypeDef *map_td = sipFindType(*a2); ++ ++ if (map_td) + { +- QMap *map = (QMap *)sipForceConvertTo_QMap_0200QCString_0200DCOPRef(a1, &iserr); ++ int iserr = 0; ++ void *map_v; ++ ++ map_v = sipForceConvertToType(a1, map_td, NULL, ++ SIP_NOT_NONE|SIP_NO_CONVERTORS, NULL, &iserr); + + if (iserr) + { + sipIsErr = 1; +- return 0; + } +- *a0 << *map; +- } +- else if (*a2 == "QMap") +- { +- QMap *map = (QMap *)sipForceConvertTo_QMap_0200QString_0200DCOPRef(a1, &iserr); ++ else if (*a2 == "QMap") ++ { ++ QMap *map = (QMap *)map_v; + +- if (iserr) ++ *a0 << *map; ++ } ++ else if (*a2 == "QMap") + { +- sipIsErr = 1; +- return 0; ++ QMap *map = (QMap *)map_v; ++ ++ *a0 << *map; + } +- *a0 << *map; + } + %End + + + void dcop_add (QDataStream&, SIP_PYLIST, QCString); + %MethodCode +- int iserr = 0; +- if (*a2 == "QValueList") ++ const sipTypeDef *list_td = sipFindType(*a2); ++ ++ if (list_td) + { +- QValueList *list = (QValueList *)sipForceConvertTo_QValueList_0200QCString (a1, &iserr); ++ int iserr = 0; ++ void *list_v; ++ ++ list_v = sipForceConvertToType(a1, list_td, NULL, ++ SIP_NOT_NONE|SIP_NO_CONVERTORS, NULL, &iserr); + + if (iserr) + { + sipIsErr = 1; +- return 0; + } +- *a0 << *list; +- } +- else if (*a2 == "QValueList") +- { +- QValueList *list = (QValueList *)sipForceConvertTo_QValueList_0200DCOPRef (a1, &iserr); ++ else if (*a2 == "QValueList") ++ { ++ QValueList *list = (QValueList *)list_v; + +- if (iserr) ++ *a0 << *list; ++ } ++ else if (*a2 == "QValueList") + { +- sipIsErr = 1; +- return 0; ++ QValueList *list = (QValueList *)list_v; ++ ++ *a0 << *list; + } +- *a0 << *list; + } + %End + +@@ -198,97 +206,97 @@ + { + QString res; + *a0 >> res; +- return sipBuildResult (NULL, "N", new QString (res),sipClass_QString); ++ return sipConvertFromNewType(new QString(res), sipType_QString, NULL); + } + else if (*a1 == "QStringList") + { + QStringList res; + *a0 >> res; +- return sipBuildResult (NULL, "N", new QStringList (res),sipClass_QStringList); ++ return sipConvertFromNewType(new QStringList(res), sipType_QStringList, NULL); + } + else if (*a1 == "QCString") + { + QCString res; + *a0 >> res; +- return sipBuildResult (NULL, "N", new QCString (res),sipClass_QCString); ++ return sipConvertFromNewType(new QCString(res), sipType_QCString, NULL); + } + else if (*a1 == "KURL") + { + KURL res; + *a0 >> res; +- return sipBuildResult (NULL, "N", new KURL (res),sipClass_KURL); ++ return sipConvertFromNewType(new KURL(res), sipType_KURL, NULL); + } + else if (*a1 == "KURL::List") + { + KURL::List res; + *a0 >> res; +- return sipBuildResult (NULL, "N", new KURL::List (res),sipClass_KURL_List); ++ return sipConvertFromNewType(new KURL::List(res), sipType_KURL_List, NULL); + } + else if (*a1 == "QSize") + { + QSize res; + *a0 >> res; +- return sipBuildResult (NULL, "N", new QSize (res),sipClass_QSize); ++ return sipConvertFromNewType(new QSize(res), sipType_QSize, NULL); + } + else if (*a1 == "QRect") + { + QRect res; + *a0 >> res; +- return sipBuildResult (NULL, "N", new QRect (res),sipClass_QRect); ++ return sipConvertFromNewType(new QRect(res), sipType_QRect, NULL); + } + else if (*a1 == "QRegion") + { + QRect res; + *a0 >> res; +- return sipBuildResult (NULL, "N", new QRegion (res),sipClass_QRegion); ++ return sipConvertFromNewType(new QRegion(res), sipType_QRegion, NULL); + } + else if (*a1 == "QPoint") + { + QPoint res; + *a0 >> res; +- return sipBuildResult (NULL, "N", new QPoint (res),sipClass_QPoint); ++ return sipConvertFromNewType(new QPoint(res), sipType_QPoint, NULL); + } + else if (*a1 == "QFont") + { + QFont res; + *a0 >> res; +- return sipBuildResult (NULL, "N", new QFont (res),sipClass_QFont); ++ return sipConvertFromNewType(new QFont(res), sipType_QFont, NULL); + } + else if (*a1 == "QCursor") + { + QCursor res; + *a0 >> res; +- return sipBuildResult (NULL, "N", new QCursor (res),sipClass_QCursor); ++ return sipConvertFromNewType(new QCursor(res), sipType_QCursor, NULL); + } + else if (*a1 == "QPixmap") + { + QPixmap res; + *a0 >> res; +- return sipBuildResult (NULL, "N", new QPixmap (res),sipClass_QPixmap); ++ return sipConvertFromNewType(new QPixmap(res), sipType_QPixmap, NULL); + } + else if (*a1 == "QColor") + { + QColor res; + *a0 >> res; +- return sipBuildResult (NULL, "N", new QColor (res),sipClass_QColor); ++ return sipConvertFromNewType(new QColor(res), sipType_QColor, NULL); + } + else if (*a1 == "QColorGroup") + { + QColorGroup res; + *a0 >> res; +- return sipBuildResult (NULL, "N", new QColorGroup (res),sipClass_QColorGroup); ++ return sipConvertFromNewType(new QColorGroup(res), sipType_QColorGroup, NULL); + } + else if (*a1 == "QPalette") + { + QPalette res; + *a0 >> res; +- return sipBuildResult (NULL, "N", new QPalette (res),sipClass_QPalette); ++ return sipConvertFromNewType(new QPalette(res), sipType_QPalette, NULL); + } + else if (*a1 == "QBrush") + { + QBrush res; + *a0 >> res; +- return sipBuildResult (NULL, "N", new QBrush (res),sipClass_QBrush); ++ return sipConvertFromNewType(new QBrush(res), sipType_QBrush, NULL); + } + else if (*a1 == "FocusPolicy") + { +@@ -300,89 +308,85 @@ + { + DCOPRef res; + *a0 >> res; +- return sipBuildResult (NULL, "N", new DCOPRef (res),sipClass_DCOPRef); ++ return sipConvertFromNewType(new DCOPRef(res), sipType_DCOPRef, NULL); + } + else if (*a1 == "QVariant") + { + QVariant res; + *a0 >> res; +- return sipBuildResult (NULL, "N", new QVariant (res),sipClass_QVariant); ++ return sipConvertFromNewType(new QVariant(res), sipType_QVariant, NULL); + } + else if (*a1 == "QDate") + { + QDate res; + *a0 >> res; +- return sipBuildResult (NULL, "N", new QDate (res),sipClass_QDate); ++ return sipConvertFromNewType(new QDate(res), sipType_QDate, NULL); + } + else if (*a1 == "QTime") + { + QTime res; + *a0 >> res; +- return sipBuildResult (NULL, "N", new QTime (res),sipClass_QTime); ++ return sipConvertFromNewType(new QTime(res), sipType_QTime, NULL); + } + else if (*a1 == "QDateTime") + { + QDateTime res; + *a0 >> res; +- return sipBuildResult (NULL, "N", new QDateTime (res),sipClass_QDateTime); ++ return sipConvertFromNewType(new QDateTime(res), sipType_QDateTime, NULL); + } + else if (*a1 == "QImage") + { + QImage res; + *a0 >> res; +- return sipBuildResult (NULL, "N", new QImage (res),sipClass_QImage); ++ return sipConvertFromNewType(new QImage(res), sipType_QImage, NULL); + } + else if (*a1 == "QKeySequence") + { + QKeySequence res; + *a0 >> res; +- return sipBuildResult (NULL, "N", new QKeySequence (res),sipClass_QKeySequence); ++ return sipConvertFromNewType(new QKeySequence(res), sipType_QKeySequence, NULL); + } + else if (*a1 == "QPen") + { + QPen res; + *a0 >> res; +- return sipBuildResult (NULL, "N", new QPen (res),sipClass_QPen); ++ return sipConvertFromNewType(new QPen(res), sipType_QPen, NULL); + } + else if (*a1 == "QPicture") + { + QPicture res; + *a0 >> res; +- return sipBuildResult (NULL, "N", new QPicture (res),sipClass_QPicture); ++ return sipConvertFromNewType(new QPicture(res), sipType_QPicture, NULL); + } + else if (*a1 == "QPointArray") + { + QPointArray res; + *a0 >> res; +- return sipBuildResult (NULL, "N", new QPointArray (res),sipClass_QPointArray); ++ return sipConvertFromNewType(new QPointArray(res), sipType_QPointArray, NULL); + } + else if (*a1 == "QMap") + { + QMap res; + *a0 >> res; +-// return sipConvertFrom_QMap_0200QCString_0200DCOPRef (&res); +- return sipConvertFromMappedType (&res, &sipMappedTypeDef_QMap_0200QCString_0200DCOPRef, NULL); ++ return sipConvertFromType(&res, sipFindType(*a1), NULL); + } + else if (*a1 == "QMap") + { + QMap res; + *a0 >> res; +-// return sipConvertFrom_QMap_0200QString_0200DCOPRef (&res); +- return sipConvertFromMappedType (&res, &sipMappedTypeDef_QMap_0200QString_0200DCOPRef, NULL); ++ return sipConvertFromType(&res, sipFindType(*a1), NULL); + } + else if (*a1 == "QValueList") + { + QValueList res; + *a0 >> res; +-// return sipConvertFrom_QValueList_0200QCString (&res); +- return sipConvertFromMappedType (&res, (sipMappedType *) sipFindMappedType ("sipMappedTypeDef_QValueList_0200QCString"), NULL); ++ return sipConvertFromType(&res, sipFindType(*a1), NULL); + } + else if (*a1 == "QValueList" || *a1 == "QCStringList") + { + QValueList res; + *a0 >> res; +-// return sipConvertFrom_QValueList_0200DCOPRef (&res); +- return sipConvertFromMappedType (&res, &sipMappedTypeDef_QValueList_0200DCOPRef, NULL); ++ return sipConvertFromType(&res, sipFindType(*a1), NULL); + } + + %End +@@ -605,8 +609,8 @@ + DCOPRef bcpp = it.data (); + PyObject *ainst; + PyObject *binst; +- if (((ainst = sipBuildResult (NULL, "N", new QCString (acpp), sipClass_QCString)) == NULL) +- || ((binst = sipBuildResult (NULL, "N", new DCOPRef (bcpp), sipClass_DCOPRef)) == NULL) ++ if (((ainst = sipConvertFromNewType(new QCString(acpp), sipType_QCString, NULL)) == NULL) ++ || ((binst = sipConvertFromNewType(new DCOPRef(bcpp), sipType_DCOPRef, NULL)) == NULL) + || (PyDict_SetItem (dict, ainst, binst) < 0)) + { + Py_XDECREF (ainst); +@@ -626,7 +630,6 @@ + if (sipIsErr == NULL) + return PyDict_Check(sipPy); + +- + QMap *cppmap = new QMap; + + PyObject *aelem, *belem; +@@ -638,14 +641,16 @@ + { + int iserr = 0; + ++ acpp = (QCString *)sipForceConvertToType(aelem, sipType_QCString, sipTransferObj, SIP_NOT_NONE|SIP_NO_CONVERTORS, NULL, &iserr); ++ bcpp = (DCOPRef *)sipForceConvertToType(belem, sipType_DCOPRef, sipTransferObj, SIP_NOT_NONE|SIP_NO_CONVERTORS, NULL, &iserr); ++ + if (iserr) + { + *sipIsErr = 1; + delete cppmap; + return 0; + } +- acpp = (QCString *)sipForceConvertTo_QCString (aelem, &iserr); +- bcpp = (DCOPRef *)sipForceConvertTo_DCOPRef (belem, &iserr); ++ + cppmap->insert (*acpp, *bcpp); + } + +@@ -687,8 +692,8 @@ + DCOPRef bcpp = it.data (); + PyObject *ainst; + PyObject *binst; +- if (((ainst = sipBuildResult (NULL, "N", new QString (acpp), sipClass_QString)) == NULL) +- || ((binst = sipBuildResult (NULL, "N", new DCOPRef (bcpp), sipClass_DCOPRef)) == NULL) ++ if (((ainst = sipConvertFromNewType(new QString(acpp), sipType_QString, sipTransferObj)) == NULL) ++ || ((binst = sipConvertFromNewType(new DCOPRef(bcpp), sipType_DCOPRef, sipTransferObj)) == NULL) + || (PyDict_SetItem (dict, ainst, binst) < 0)) + { + Py_XDECREF (ainst); +@@ -708,7 +713,6 @@ + if (sipIsErr == NULL) + return PyDict_Check(sipPy); + +- + QMap *cppmap = new QMap; + + PyObject *aelem, *belem; +@@ -718,19 +722,24 @@ + + while (PyDict_Next(sipPy, &pos, &aelem, &belem)) + { +- int iserr = 0; ++ int iserr = 0, acpp_state; + ++ acpp = (QString *)sipForceConvertToType(aelem, sipType_QString, sipTransferObj, SIP_NOT_NONE, &acpp_state, &iserr); ++ bcpp = (DCOPRef *)sipForceConvertToType(belem, sipType_DCOPRef, sipTransferObj, SIP_NOT_NONE|SIP_NO_CONVERTORS, NULL, &iserr); ++ + if (iserr) + { ++ if (acpp) ++ sipReleaseType(acpp, sipType_QString, acpp_state); ++ + *sipIsErr = 1; + delete cppmap; + return 0; + } + +- acpp = (QString *)sipForceConvertTo_QString (aelem, &iserr); +- bcpp = (DCOPRef *)sipForceConvertTo_DCOPRef (belem, &iserr); +- + cppmap->insert (*acpp, *bcpp); ++ ++ sipReleaseType(acpp, sipType_QString, acpp_state); + } + + *sipCppPtr = cppmap; +@@ -763,7 +772,7 @@ + QValueList::Iterator it; + for( it = cpplist->begin(); it != cpplist->end(); ++it ) + { +- if (((inst = sipBuildResult (NULL, "N", new DCOPRef (*it), sipClass_DCOPRef)) == NULL) ++ if (((inst = sipConvertFromNewType(new DCOPRef(*it), sipType_DCOPRef, NULL)) == NULL) + || PyList_Append (pylist, inst) < 0) + { + Py_DECREF (pylist); +@@ -788,7 +797,7 @@ + for (int i = 0; i < PyList_Size (sipPy); i++) + { + elem = PyList_GET_ITEM (sipPy, i); +- cpp = (DCOPRef *)sipForceConvertTo_DCOPRef (elem, &iserr); ++ cpp = (DCOPRef *)sipForceConvertToType(elem, sipType_DCOPRef, sipTransferObj, SIP_NOT_NONE|SIP_NO_CONVERTORS, NULL, &iserr); + if (iserr) + { + *sipIsErr = 1; +diff -ruN PyKDE-3.16.2/sip/kdecore/kaboutdata.sip PyKDE-3.16.3/sip/kdecore/kaboutdata.sip +--- PyKDE-3.16.2/sip/kdecore/kaboutdata.sip 2006-09-22 04:11:16.000000000 +0100 ++++ PyKDE-3.16.3/sip/kdecore/kaboutdata.sip 2009-06-10 17:50:25.000000000 +0100 +@@ -188,7 +188,7 @@ + QValueList::Iterator it; + for( it = cpplist->begin(); it != cpplist->end(); ++it ) + { +- if (((inst = sipBuildResult (NULL, "N", new KAboutPerson (*it), sipClass_KAboutPerson)) == NULL) ++ if (((inst = sipConvertFromNewType(new KAboutPerson(*it), sipType_KAboutPerson, NULL)) == NULL) + || PyList_Append (pylist, inst) < 0) + { + Py_DECREF (pylist); +@@ -213,7 +213,7 @@ + for (int i = 0; i < PyList_Size (sipPy); i++) + { + elem = PyList_GET_ITEM (sipPy, i); +- cpp = (KAboutPerson *)sipForceConvertTo_KAboutPerson (elem, &iserr); ++ cpp = (KAboutPerson *)sipForceConvertToType(elem, sipType_KAboutPerson, sipTransferObj, SIP_NOT_NONE|SIP_NO_CONVERTORS, NULL, &iserr); + + if (iserr) + { +@@ -255,7 +255,7 @@ + QValueList::Iterator it; + for( it = cpplist->begin(); it != cpplist->end(); ++it ) + { +- if (((inst = sipBuildResult (NULL, "N", new KAboutTranslator (*it), sipClass_KAboutTranslator)) == NULL) ++ if (((inst = sipConvertFromNewType(new KAboutTranslator(*it), sipType_KAboutTranslator, NULL)) == NULL) + || PyList_Append (pylist, inst) < 0) + { + Py_DECREF (pylist); +@@ -280,7 +280,7 @@ + for (int i = 0; i < PyList_Size (sipPy); i++) + { + elem = PyList_GET_ITEM (sipPy, i); +- cpp = (KAboutTranslator *)sipForceConvertTo_KAboutTranslator (elem, &iserr); ++ cpp = (KAboutTranslator *)sipForceConvertToType(elem, sipType_KAboutTranslator, sipTransferObj, SIP_NOT_NONE|SIP_NO_CONVERTORS, NULL, &iserr); + + if (iserr) + { +diff -ruN PyKDE-3.16.2/sip/kdecore/kaccel.sip PyKDE-3.16.3/sip/kdecore/kaccel.sip +--- PyKDE-3.16.2/sip/kdecore/kaccel.sip 2008-03-04 20:47:14.000000000 +0000 ++++ PyKDE-3.16.3/sip/kdecore/kaccel.sip 2009-06-10 22:31:39.000000000 +0100 +@@ -207,27 +207,29 @@ + + QMap *map = new QMap; + +- PyObject *key, *value; +- SIP_SSIZE_T pos = 0; +- int iKey; +- QString *sData; ++ PyObject *key, *value; ++ SIP_SSIZE_T pos = 0; ++ int iKey; ++ QString *sData; ++ ++ while (PyDict_Next(sipPy, &pos, &key, &value)) ++ { ++ int iserr = 0, sData_state; + +- while (PyDict_Next(sipPy, &pos, &key, &value)) +- { +- int iserr = 0; ++ iKey = PyInt_AS_LONG (key); ++ sData = (QString *)sipForceConvertToType(value, sipType_QString, sipTransferObj, SIP_NOT_NONE, &sData_state, &iserr); + +- iKey = PyInt_AS_LONG (key); +- sData = (QString *)sipForceConvertTo_QString (value, &iserr); ++ if (iserr) ++ { ++ *sipIsErr = 1; ++ delete map; ++ return 0; ++ } + +- if (iserr) +- { +- *sipIsErr = 1; +- delete map; +- return 0; +- } ++ map->insert (iKey, *sData); + +- map->insert (iKey, *sData); +- } ++ sipReleaseType(sData, sipType_QString, sData_state); ++ } + + *sipCppPtr = map; + +diff -ruN PyKDE-3.16.2/sip/kdecore/kcompletion.sip PyKDE-3.16.3/sip/kdecore/kcompletion.sip +--- PyKDE-3.16.2/sip/kdecore/kcompletion.sip 2008-03-04 20:47:14.000000000 +0000 ++++ PyKDE-3.16.3/sip/kdecore/kcompletion.sip 2009-06-10 17:50:42.000000000 +0100 +@@ -200,24 +200,24 @@ + QMap *kbmap = new QMap; + + PyObject *key, *value; +- SIP_SSIZE_T pos = 0; +- KShortcut *cValue; +- int iserr; ++ SIP_SSIZE_T pos = 0; ++ KShortcut *cValue; ++ int iserr; ++ ++ while (PyDict_Next(sipPy, &pos, &key, &value)) ++ { ++ cValue = (KShortcut *)sipForceConvertToType(value, sipType_KShortcut, sipTransferObj, SIP_NOT_NONE|SIP_NO_CONVERTORS, NULL, &iserr); + +- while (PyDict_Next(sipPy, &pos, &key, &value)) ++ if (iserr || !PyInt_Check (key)) + { +- cValue = (KShortcut *)sipForceConvertTo_KShortcut (value, &iserr); +- +- if (iserr || !PyInt_Check (key)) +- { +- *sipIsErr = 1; +- delete kbmap; +- return 0; +- } +- +- kbmap->insert ((KCompletionBase::KeyBindingType)PyInt_AS_LONG (key), *cValue); ++ *sipIsErr = 1; ++ delete kbmap; ++ return 0; + } + ++ kbmap->insert ((KCompletionBase::KeyBindingType)PyInt_AS_LONG (key), *cValue); ++ } ++ + *sipCppPtr = kbmap; + + return 1; +diff -ruN PyKDE-3.16.2/sip/kdecore/kconfigdata.sip PyKDE-3.16.3/sip/kdecore/kconfigdata.sip +--- PyKDE-3.16.2/sip/kdecore/kconfigdata.sip 2008-11-13 18:44:31.000000000 +0000 ++++ PyKDE-3.16.3/sip/kdecore/kconfigdata.sip 2009-06-10 17:51:06.000000000 +0100 +@@ -74,7 +74,7 @@ + //returns (QMap *cppmap = new QMap; + + PyObject *aelem, *belem; +@@ -164,19 +163,25 @@ + + while (PyDict_Next(sipPy, &pos, &aelem, &belem)) + { +- int iserr = 0; ++ int iserr = 0, acpp_state, bcpp_state; + +- acpp = (QString *)sipForceConvertTo_QString (aelem, &iserr); +- bcpp = (QString *)sipForceConvertTo_QString (belem, &iserr); ++ acpp = (QString *)sipForceConvertToType(aelem, sipType_QString, sipTransferObj, SIP_NOT_NONE, &acpp_state, &iserr); ++ bcpp = (QString *)sipForceConvertToType(belem, sipType_QString, sipTransferObj, SIP_NOT_NONE, &bcpp_state, &iserr); + + if (iserr) + { ++ if (acpp) ++ sipReleaseType(acpp, sipType_QString, acpp_state); ++ + *sipIsErr = 1; + delete cppmap; + return 0; + } + + cppmap->insert (*acpp, *bcpp); ++ ++ sipReleaseType(acpp, sipType_QString, acpp_state); ++ sipReleaseType(bcpp, sipType_QString, bcpp_state); + } + + *sipCppPtr = cppmap; +@@ -215,7 +220,7 @@ + return PyInstance_Check(sipPy); + + int iserr = 0; +- KSharedConfig *cpp = (KSharedConfig *)sipForceConvertTo_KSharedConfig (sipPy, &iserr); ++ KSharedConfig *cpp = (KSharedConfig *)sipForceConvertToType(sipPy, sipType_KSharedConfig, sipTransferObj, SIP_NO_CONVERTORS, NULL, &iserr); + + if (iserr) + { +diff -ruN PyKDE-3.16.2/sip/kdecore/kconfigskeleton.sip PyKDE-3.16.3/sip/kdecore/kconfigskeleton.sip +--- PyKDE-3.16.2/sip/kdecore/kconfigskeleton.sip 2008-03-04 20:47:14.000000000 +0000 ++++ PyKDE-3.16.3/sip/kdecore/kconfigskeleton.sip 2009-06-10 17:51:56.000000000 +0100 +@@ -1099,7 +1099,7 @@ + QValueList::Iterator it; + for( it = cpplist->begin(); it != cpplist->end(); ++it ) + { +- if (((inst = sipBuildResult (NULL, "N", new KConfigSkeleton::ItemEnum::Choice (*it), sipClass_KConfigSkeleton_ItemEnum_Choice)) == NULL) ++ if (((inst = sipConvertFromNewType(new KConfigSkeleton::ItemEnum::Choice(*it), sipType_KConfigSkeleton_ItemEnum_Choice, NULL)) == NULL) + || PyList_Append (pylist, inst) < 0) + { + Py_DECREF (pylist); +@@ -1124,7 +1124,7 @@ + for (int i = 0; i < PyList_Size (sipPy); i++) + { + elem = PyList_GET_ITEM (sipPy, i); +- cpp = (KConfigSkeleton::ItemEnum::Choice *)sipForceConvertTo_KConfigSkeleton_ItemEnum_Choice (elem, &iserr); ++ cpp = (KConfigSkeleton::ItemEnum::Choice *)sipForceConvertToType(elem, sipType_KConfigSkeleton_ItemEnum_Choice, sipTransferObj, SIP_NOT_NONE|SIP_NO_CONVERTORS, NULL, &iserr); + + if (iserr) + { +diff -ruN PyKDE-3.16.2/sip/kdecore/klockfile.sip PyKDE-3.16.3/sip/kdecore/klockfile.sip +--- PyKDE-3.16.2/sip/kdecore/klockfile.sip 2008-03-04 20:47:14.000000000 +0000 ++++ PyKDE-3.16.3/sip/kdecore/klockfile.sip 2009-06-10 17:53:23.000000000 +0100 +@@ -94,7 +94,7 @@ + return PyInstance_Check(sipPy); + + int iserr = 0; +- KLockFile *cpp = (KLockFile *)sipForceConvertTo_KLockFile (sipPy, &iserr); ++ KLockFile *cpp = (KLockFile *)sipForceConvertToType(sipPy, sipType_KLockFile, sipTransferObj, SIP_NO_CONVERTORS, NULL, &iserr); + + if (iserr) + { +diff -ruN PyKDE-3.16.2/sip/kdecore/kmacroexpander.sip PyKDE-3.16.3/sip/kdecore/kmacroexpander.sip +--- PyKDE-3.16.2/sip/kdecore/kmacroexpander.sip 2008-03-04 20:47:14.000000000 +0000 ++++ PyKDE-3.16.3/sip/kdecore/kmacroexpander.sip 2009-06-10 22:37:31.000000000 +0100 +@@ -145,7 +145,7 @@ + QChar acpp = it.key (); + PyObject *binst = PyString_FromString ((char *)((QString *)&it.data ())); + PyObject *ainst; +- if (((ainst = sipBuildResult (NULL, "N", new QChar (acpp), sipClass_QChar)) == NULL) ++ if (((ainst = sipConvertFromNewType(new QChar(acpp), sipType_QChar, sipTransferObj)) == NULL) + || (binst == NULL) + || (PyDict_SetItem (dict, ainst, binst) < 0)) + { +@@ -173,23 +173,29 @@ + QChar *cKey; + QString *sData; + +- while (PyDict_Next(sipPy, &pos, &key, &value)) +- { +- int iserr = 0; ++ while (PyDict_Next(sipPy, &pos, &key, &value)) ++ { ++ int iserr = 0, cKey_state, sData_state; + +- cKey = (QChar *)sipForceConvertTo_QChar (key, &iserr); +- sData = (QString *)sipForceConvertTo_QString (value, &iserr); ++ cKey = (QChar *)sipForceConvertToType(key, sipType_QChar, sipTransferObj, SIP_NOT_NONE, &cKey_state, &iserr); ++ sData = (QString *)sipForceConvertToType(value, sipType_QString, sipTransferObj, SIP_NOT_NONE, &sData_state, &iserr); + +- if (iserr) +- { +- *sipIsErr = 1; +- delete map; +- return 0; +- } ++ if (iserr) ++ { ++ if (cKey) ++ sipReleaseType(cKey, sipType_QChar, cKey_state); + +- map->insert (*cKey, *sData); ++ *sipIsErr = 1; ++ delete map; ++ return 0; + } + ++ map->insert (*cKey, *sData); ++ ++ sipReleaseType(cKey, sipType_QChar, cKey_state); ++ sipReleaseType(sData, sipType_QString, sData_state); ++ } ++ + *sipCppPtr = map; + + return 1; +@@ -228,7 +234,7 @@ + QStringList bcpp = it.data (); + PyObject *ainst = PyString_FromString ((char *)((QString *)&it.key ())); + PyObject *binst; +- if (((binst = sipBuildResult (NULL, "N", new QStringList (bcpp), sipClass_QStringList)) == NULL) ++ if (((binst = sipConvertFromNewType(new QStringList(bcpp), sipType_QStringList, sipTransferObj)) == NULL) + || (ainst == NULL) + || (PyDict_SetItem (dict, ainst, binst) < 0)) + { +@@ -256,23 +262,29 @@ + QString *sKey; + QStringList *slData; + +- while (PyDict_Next(sipPy, &pos, &key, &value)) +- { +- int iserr = 0; ++ while (PyDict_Next(sipPy, &pos, &key, &value)) ++ { ++ int iserr = 0, sKey_state, slData_state; + +- sKey = (QString *)sipForceConvertTo_QString (value, &iserr); +- slData = (QStringList *)sipForceConvertTo_QStringList (value, &iserr); ++ sKey = (QString *)sipForceConvertToType(key, sipType_QString, sipTransferObj, SIP_NOT_NONE, &sKey_state, &iserr); ++ slData = (QStringList *)sipForceConvertToType(value, sipType_QStringList, sipTransferObj, SIP_NOT_NONE, &slData_state, &iserr); + +- if (iserr) +- { +- *sipIsErr = 1; +- delete map; +- return 0; +- } ++ if (iserr) ++ { ++ if (sKey) ++ sipReleaseType(sKey, sipType_QString, sKey_state); + +- map->insert (*sKey, *slData); ++ *sipIsErr = 1; ++ delete map; ++ return 0; + } + ++ map->insert (*sKey, *slData); ++ ++ sipReleaseType(sKey, sipType_QString, sKey_state); ++ sipReleaseType(slData, sipType_QStringList, slData_state); ++ } ++ + *sipCppPtr = map; + + return 1; +@@ -312,8 +324,8 @@ + QStringList bcpp = it.data (); + PyObject *binst; + PyObject *ainst; +- if (((ainst = sipBuildResult (NULL, "N", new QChar (acpp), sipClass_QChar)) == NULL) +- || (binst = sipBuildResult (NULL, "N", new QStringList (bcpp), sipClass_QStringList)) ++ if (((ainst = sipConvertFromNewType(new QChar(acpp), sipType_QChar, sipTransferObj)) == NULL) ++ || (binst = sipConvertFromNewType(new QStringList(bcpp), sipType_QStringList, sipTransferObj)) + || (PyDict_SetItem (dict, ainst, binst) < 0)) + { + Py_XDECREF (ainst); +@@ -340,23 +352,29 @@ + QChar *cKey; + QStringList *slData; + +- while (PyDict_Next(sipPy, &pos, &key, &value)) +- { +- int iserr = 0; ++ while (PyDict_Next(sipPy, &pos, &key, &value)) ++ { ++ int iserr = 0, cKey_state, slData_state; + +- cKey = (QChar *)sipForceConvertTo_QChar (key, &iserr); +- slData = (QStringList *)sipForceConvertTo_QStringList (value, &iserr); ++ cKey = (QChar *)sipForceConvertToType(key, sipType_QChar, sipTransferObj, SIP_NOT_NONE, &cKey_state, &iserr); ++ slData = (QStringList *)sipForceConvertToType(value, sipType_QStringList, sipTransferObj, SIP_NOT_NONE, &slData_state, &iserr); + +- if (iserr) +- { +- *sipIsErr = 1; +- delete map; +- return 0; +- } ++ if (iserr) ++ { ++ if (cKey) ++ sipReleaseType(cKey, sipType_QChar, cKey_state); + +- map->insert (*cKey, *slData); ++ *sipIsErr = 1; ++ delete map; ++ return 0; + } + ++ map->insert (*cKey, *slData); ++ ++ sipReleaseType(cKey, sipType_QChar, cKey_state); ++ sipReleaseType(slData, sipType_QStringList, slData_state); ++ } ++ + *sipCppPtr = map; + + return 1; +diff -ruN PyKDE-3.16.2/sip/kdecore/kmountpoint.sip PyKDE-3.16.3/sip/kdecore/kmountpoint.sip +--- PyKDE-3.16.2/sip/kdecore/kmountpoint.sip 2008-03-04 20:47:14.000000000 +0000 ++++ PyKDE-3.16.3/sip/kdecore/kmountpoint.sip 2009-06-10 21:52:40.000000000 +0100 +@@ -95,7 +95,7 @@ + return PyInstance_Check(sipPy); + + int iserr = 0; +- KMountPoint *cpp = (KMountPoint *)sipForceConvertTo_KMountPoint (sipPy, &iserr); ++ KMountPoint *cpp = (KMountPoint *)sipForceConvertToType(sipPy, sipType_KMountPoint, sipTransferObj, SIP_NO_CONVERTORS, NULL, &iserr); + + if (iserr) + { +@@ -136,7 +136,7 @@ + KMountPoint::List::Iterator it; + for( it = cList->begin(); it != cList->end(); ++it ) + { +- inst = sipConvertFrom_KMountPoint_Ptr (&(KMountPoint::Ptr)(*it), sipTransferObj); ++ inst = sipConvertFromType(&(KMountPoint::Ptr)(*it), sipType_KMountPoint_Ptr, sipTransferObj); + + if ((inst == NULL) || (PyList_Append (plist, inst) < 0)) + { +@@ -163,7 +163,7 @@ + for (int i = 0; i < PyList_Size (sipPy); i++) + { + elem = PyList_GET_ITEM (sipPy, i); +- mtpt = (KMountPoint *)sipForceConvertTo_KMountPoint (elem, &iserr); ++ mtpt = (KMountPoint *)sipForceConvertToType(elem, sipType_KMountPoint, sipTransferObj, SIP_NOT_NONE|SIP_NO_CONVERTORS, NULL, &iserr); + + KMountPoint::Ptr *ptr = new KMountPoint::Ptr (mtpt); + +diff -ruN PyKDE-3.16.2/sip/kdecore/ktimezones.sip PyKDE-3.16.3/sip/kdecore/ktimezones.sip +--- PyKDE-3.16.2/sip/kdecore/ktimezones.sip 2008-03-04 20:47:14.000000000 +0000 ++++ PyKDE-3.16.3/sip/kdecore/ktimezones.sip 2009-06-10 22:39:03.000000000 +0100 +@@ -162,7 +162,7 @@ + return PyInstance_Check(sipPy); + + int iserr = 0; +- KTimezoneSource *cpp = (KTimezoneSource *)sipForceConvertTo_KTimezoneSource (sipPy, &iserr); ++ KTimezoneSource *cpp = (KTimezoneSource *)sipForceConvertToType(sipPy, sipType_KTimezoneSource, sipTransferObj, SIP_NO_CONVERTORS, NULL, &iserr); + + if (iserr) + { +@@ -212,8 +212,8 @@ + KTimezone *bcpp = it.data (); + PyObject *ainst; + PyObject *binst; +- if (((ainst = sipBuildResult (NULL, "N", new QString (acpp), sipClass_QString)) == NULL) +- || ((binst = sipBuildResult (NULL, "N", (KTimezone *) bcpp, sipClass_KTimezone)) == NULL) ++ if (((ainst = sipConvertFromNewType(new QString(acpp), sipType_QString, sipTransferObj)) == NULL) ++ || ((binst = sipConvertFromType((KTimezone *)bcpp, sipType_KTimezone, sipTransferObj)) == NULL) + || (PyDict_SetItem (dict, ainst, binst) < 0)) + { + Py_XDECREF (ainst); +@@ -233,7 +233,6 @@ + if (sipIsErr == NULL) + return PyDict_Check(sipPy); + +- + QMap *cppmap = new QMap; + + PyObject *aelem, *belem; +@@ -243,12 +242,24 @@ + + while (PyDict_Next(sipPy, &pos, &aelem, &belem)) + { +- int iserr = 0; ++ int iserr = 0, acpp_state; ++ ++ acpp = (QString *)sipForceConvertToType(aelem, sipType_QString, sipTransferObj, SIP_NOT_NONE, &acpp_state, &iserr); ++ bcpp = (KTimezone *)sipForceConvertToType(belem, sipType_KTimezone, sipTransferObj, SIP_NO_CONVERTORS, NULL, &iserr); ++ ++ if (iserr) ++ { ++ if (acpp) ++ sipReleaseType(acpp, sipType_QString, acpp_state); + +- acpp = (QString *)sipForceConvertTo_QString (aelem, &iserr); +- bcpp = (KTimezone *)sipForceConvertTo_KTimezone (aelem, &iserr); ++ *sipIsErr = 1; ++ delete cppmap; ++ return 0; ++ } + + cppmap->insert (*acpp, bcpp); ++ ++ sipReleaseType(acpp, sipType_QString, acpp_state); + } + + *sipCppPtr = cppmap; +diff -ruN PyKDE-3.16.2/sip/kdeprint/kmjobmanager.sip PyKDE-3.16.3/sip/kdeprint/kmjobmanager.sip +--- PyKDE-3.16.2/sip/kdeprint/kmjobmanager.sip 2008-03-04 20:47:14.000000000 +0000 ++++ PyKDE-3.16.3/sip/kdeprint/kmjobmanager.sip 2009-06-10 18:10:04.000000000 +0100 +@@ -175,7 +175,7 @@ + for (int i = 0; i < PyList_Size (sipPy); i++) + { + elem = PyList_GET_ITEM (sipPy, i); +- cpp = (KMJob *)sipForceConvertTo_KMJob (elem, &iserr); ++ cpp = (KMJob *)sipForceConvertToType(elem, sipType_KMJob, sipTransferObj, SIP_NO_CONVERTORS, NULL, &iserr); + + if (iserr) + { +diff -ruN PyKDE-3.16.2/sip/kdeprint/kmmanager.sip PyKDE-3.16.3/sip/kdeprint/kmmanager.sip +--- PyKDE-3.16.2/sip/kdeprint/kmmanager.sip 2008-03-04 20:47:14.000000000 +0000 ++++ PyKDE-3.16.3/sip/kdeprint/kmmanager.sip 2009-06-10 18:11:26.000000000 +0100 +@@ -188,7 +188,7 @@ + // Convert a Python list to QPtrList on the heap. + + if (sipIsErr == NULL) +- return PyList_Check(sipPy); ++ return PyList_Check(sipPy); + + QPtrList *kpList = new QPtrList; + +@@ -199,7 +199,7 @@ + for (int i = 0; i < PyList_Size (sipPy); i++) + { + elem = PyList_GET_ITEM (sipPy, i); +- p = (KMPrinter *)sipForceConvertTo_KMPrinter(elem, &iserr); ++ p = (KMPrinter *)sipForceConvertToType(elem, sipType_KMPrinter, sipTransferObj, SIP_NO_CONVERTORS, NULL, &iserr); + + if (iserr) + { +diff -ruN PyKDE-3.16.2/sip/kdeprint/kprintdialog.sip PyKDE-3.16.3/sip/kdeprint/kprintdialog.sip +--- PyKDE-3.16.2/sip/kdeprint/kprintdialog.sip 2008-03-04 20:47:14.000000000 +0000 ++++ PyKDE-3.16.3/sip/kdeprint/kprintdialog.sip 2009-06-10 18:12:38.000000000 +0100 +@@ -148,7 +148,7 @@ + for (int i = 0; i < PyList_Size (sipPy); i++) + { + elem = PyList_GET_ITEM (sipPy, i); +- p = (KPrintDialogPage *)sipForceConvertTo_KPrintDialogPage(elem, &iserr); ++ p = (KPrintDialogPage *)sipForceConvertToType(elem, sipType_KPrintDialogPage, sipTransferObj, SIP_NO_CONVERTORS, NULL, &iserr); + + if (iserr) + { +diff -ruN PyKDE-3.16.2/sip/kdeui/kaction.sip PyKDE-3.16.3/sip/kdeui/kaction.sip +--- PyKDE-3.16.2/sip/kdeui/kaction.sip 2008-03-04 20:47:14.000000000 +0000 ++++ PyKDE-3.16.3/sip/kdeui/kaction.sip 2009-06-10 18:14:52.000000000 +0100 +@@ -737,7 +737,7 @@ + for (int i = 0; i < PyList_Size (sipPy); i++) + { + elem = PyList_GET_ITEM (sipPy, i); +- cpp = (KAction *)sipForceConvertTo_KAction (elem, &iserr); ++ cpp = (KAction *)sipForceConvertToType(elem, sipType_KAction, sipTransferObj, SIP_NO_CONVERTORS, NULL, &iserr); + + if (iserr) + { +diff -ruN PyKDE-3.16.2/sip/kdeui/kcmodule.sip PyKDE-3.16.3/sip/kdeui/kcmodule.sip +--- PyKDE-3.16.2/sip/kdeui/kcmodule.sip 2006-09-22 04:11:15.000000000 +0100 ++++ PyKDE-3.16.3/sip/kdeui/kcmodule.sip 2009-06-10 18:15:37.000000000 +0100 +@@ -161,7 +161,7 @@ + for (int i = 0; i < PyList_Size (sipPy); i++) + { + elem = PyList_GET_ITEM (sipPy, i); +- cpp = (KConfigDialogManager *)sipForceConvertTo_KConfigDialogManager (elem, &iserr); ++ cpp = (KConfigDialogManager *)sipForceConvertToType(elem, sipType_KConfigDialogManager, sipTransferObj, SIP_NO_CONVERTORS, NULL, &iserr); + + if (iserr) + { +diff -ruN PyKDE-3.16.2/sip/kdeui/kkeydialog.sip PyKDE-3.16.3/sip/kdeui/kkeydialog.sip +--- PyKDE-3.16.2/sip/kdeui/kkeydialog.sip 2008-03-04 20:47:14.000000000 +0000 ++++ PyKDE-3.16.3/sip/kdeui/kkeydialog.sip 2009-06-10 22:40:27.000000000 +0100 +@@ -235,12 +235,15 @@ + + while (PyDict_Next(sipPy, &pos, &key, &value)) + { +- int iserr = 0; ++ int iserr = 0, a0_state; + +- a0 = (QString *) sipForceConvertTo_QString (key, &iserr); ++ a0 = (QString *)sipForceConvertToType(key, sipType_QString, sipTransferObj, SIP_NOT_NONE, &a0_state, &iserr); + + if ((iserr) || (!PyInt_Check (value))) + { ++ if (a0) ++ sipReleaseType(a0, sipType_QString, a0_state); ++ + *sipIsErr = 1; + delete qdict; + return 0; +@@ -249,6 +252,8 @@ + a1 = (int) PyInt_AS_LONG (value); + + qdict->insert (*a0, &a1); ++ ++ sipReleaseType(a0, sipType_QString, a0_state); + } + + *sipCppPtr = qdict; +diff -ruN PyKDE-3.16.2/sip/kdeui/klistview.sip PyKDE-3.16.3/sip/kdeui/klistview.sip +--- PyKDE-3.16.2/sip/kdeui/klistview.sip 2008-03-04 20:47:14.000000000 +0000 ++++ PyKDE-3.16.3/sip/kdeui/klistview.sip 2009-06-10 18:18:10.000000000 +0100 +@@ -315,7 +315,7 @@ + for (int i = 0; i < PyList_Size (sipPy); i++) + { + elem = PyList_GET_ITEM (sipPy, i); +- cpp = (QListViewItem *)sipForceConvertTo_QListViewItem (elem, &iserr); ++ cpp = (QListViewItem *)sipForceConvertToType(elem, sipType_QListViewItem, sipTransferObj, SIP_NO_CONVERTORS, NULL, &iserr); + + if (iserr) + { +diff -ruN PyKDE-3.16.2/sip/kdeui/kmainwindow.sip PyKDE-3.16.3/sip/kdeui/kmainwindow.sip +--- PyKDE-3.16.2/sip/kdeui/kmainwindow.sip 2008-03-04 20:47:14.000000000 +0000 ++++ PyKDE-3.16.3/sip/kdeui/kmainwindow.sip 2009-06-10 18:18:58.000000000 +0100 +@@ -252,7 +252,7 @@ + for (int i = 0; i < PyList_Size (sipPy); i++) + { + elem = PyList_GET_ITEM (sipPy, i); +- cpp = (KMainWindow *)sipForceConvertTo_KMainWindow (elem, &iserr); ++ cpp = (KMainWindow *)sipForceConvertToType(elem, sipType_KMainWindow, sipTransferObj, SIP_NO_CONVERTORS, NULL, &iserr); + + if (iserr) + { +diff -ruN PyKDE-3.16.2/sip/kdeui/kstdguiitem.sip PyKDE-3.16.3/sip/kdeui/kstdguiitem.sip +--- PyKDE-3.16.2/sip/kdeui/kstdguiitem.sip 2008-03-04 20:47:14.000000000 +0000 ++++ PyKDE-3.16.3/sip/kdeui/kstdguiitem.sip 2009-06-10 18:21:08.000000000 +0100 +@@ -309,8 +309,8 @@ + // Get it. + KGuiItem g1 = (*cpp).first; + KGuiItem g2 = (*cpp).second; +- PyObject *pyg1 = sipBuildResult (NULL, "N", new KGuiItem (g1), sipClass_KGuiItem); +- PyObject *pyg2 = sipBuildResult (NULL, "N", new KGuiItem (g2), sipClass_KGuiItem); ++ PyObject *pyg1 = sipConvertFromNewType(new KGuiItem(g1), sipType_KGuiItem, NULL); ++ PyObject *pyg2 = sipConvertFromNewType(new KGuiItem(g2), sipType_KGuiItem, NULL); + if ((pyg1 == NULL) || (pyg2 == NULL) || ((inst = Py_BuildValue ("NN", pyg1, pyg2)) == NULL)) + { + Py_XDECREF (inst); +@@ -327,13 +327,13 @@ + if (sipIsErr == NULL) + return PyTuple_Check(sipPy); + +- KGuiItem g1, g2; ++ KGuiItem *g1, *g2; + int iserr = 0; + + PyObject *pyg1 = PyTuple_GET_ITEM (sipPy, 0); + PyObject *pyg2 = PyTuple_GET_ITEM (sipPy, 1); +- g1 = *(KGuiItem *)sipForceConvertTo_KGuiItem (pyg1, &iserr); +- g2 = *(KGuiItem *)sipForceConvertTo_KGuiItem (pyg2, &iserr); ++ g1 = (KGuiItem *)sipForceConvertToType(pyg1, sipType_KGuiItem, sipTransferObj, SIP_NOT_NONE|SIP_NO_CONVERTORS, NULL, &iserr); ++ g2 = (KGuiItem *)sipForceConvertToType(pyg2, sipType_KGuiItem, sipTransferObj, SIP_NOT_NONE|SIP_NO_CONVERTORS, NULL, &iserr); + + if (iserr) + { +@@ -341,8 +341,7 @@ + return 0; + } + +- +- *sipCppPtr = new QPair (g1, g2); ++ *sipCppPtr = new QPair (*g1, *g2); + + return 1; + %End +diff -ruN PyKDE-3.16.2/sip/kdeui/kxmlguifactory.sip PyKDE-3.16.3/sip/kdeui/kxmlguifactory.sip +--- PyKDE-3.16.2/sip/kdeui/kxmlguifactory.sip 2008-03-04 20:47:14.000000000 +0000 ++++ PyKDE-3.16.3/sip/kdeui/kxmlguifactory.sip 2009-06-10 20:36:48.000000000 +0100 +@@ -135,7 +135,7 @@ + for (int i = 0; i < PyList_Size (sipPy); i++) + { + elem = PyList_GET_ITEM (sipPy, i); +- cpp = (KAction *)sipForceConvertTo_KAction (elem, &iserr); ++ cpp = (KAction *)sipForceConvertToType(elem, sipType_KAction, sipTransferObj, SIP_NO_CONVERTORS, NULL, &iserr); + + if (iserr) + { +@@ -182,7 +182,7 @@ + // the loop depends on the type of iterator the tmeplate makes available + for(cpp = cpplist->first (); cpp != 0; cpp = cpplist->next () ) + { +- if (((inst = sipBuildResult (NULL, "N", new KXMLGUIClient (*cpp), sipClass_KXMLGUIClient)) == NULL) ++ if (((inst = sipConvertFromNewType(new KXMLGUIClient(*cpp), sipType_KXMLGUIClient, NULL)) == NULL) + || PyList_Append (pylist, inst) < 0) + { + Py_DECREF (pylist); +@@ -206,7 +206,7 @@ + for (int i = 0; i < PyList_Size (sipPy); i++) + { + elem = PyList_GET_ITEM (sipPy, i); +- cpp = (KXMLGUIClient *)sipForceConvertTo_KXMLGUIClient (elem, &iserr); ++ cpp = (KXMLGUIClient *)sipForceConvertToType(elem, sipType_KXMLGUIClient, sipTransferObj, SIP_NO_CONVERTORS, NULL, &iserr); + + if (iserr) + { +@@ -276,7 +276,7 @@ + for (int i = 0; i < PyList_Size (sipPy); i++) + { + elem = PyList_GET_ITEM (sipPy, i); +- cpp = (QWidget *)sipForceConvertTo_QWidget (elem, &iserr); ++ cpp = (QWidget *)sipForceConvertToType(elem, sipType_QWidget, sipTransferObj, SIP_NO_CONVERTORS, NULL, &iserr); + + if (iserr) + { +diff -ruN PyKDE-3.16.2/sip/kfile/kfilebookmark.sip PyKDE-3.16.3/sip/kfile/kfilebookmark.sip +--- PyKDE-3.16.2/sip/kfile/kfilebookmark.sip 2006-05-25 02:27:34.000000000 +0100 ++++ PyKDE-3.16.3/sip/kfile/kfilebookmark.sip 2009-06-10 20:38:21.000000000 +0100 +@@ -133,11 +133,8 @@ + for (int i = 0; i < PyList_Size (sipPy); i++) + { + elem = PyList_GET_ITEM (sipPy, i); +- #if SIPVERSION >= 0x040400 +- cpp = (KFileBookmark *)sipForceConvertToTransfer_KFileBookmark (elem, &iserr, sipTransferObj); +- #else +- cpp = (KFileBookmark *)sipForceConvertTo_KFileBookmark (elem, &iserr); +- #endif ++ cpp = (KFileBookmark *)sipForceConvertToType(elem, sipType_KFileBookmark, sipTransferObj, SIP_NO_CONVERTORS, NULL, &iserr); ++ + if (iserr) + { + *sipIsErr = 1; +diff -ruN PyKDE-3.16.2/sip/kfile/kfiletreebranch.sip PyKDE-3.16.3/sip/kfile/kfiletreebranch.sip +--- PyKDE-3.16.2/sip/kfile/kfiletreebranch.sip 2008-03-04 20:47:14.000000000 +0000 ++++ PyKDE-3.16.3/sip/kfile/kfiletreebranch.sip 2009-06-10 20:39:56.000000000 +0100 +@@ -137,7 +137,7 @@ + for (int i = 0; i < PyList_Size (sipPy); i++) + { + elem = PyList_GET_ITEM (sipPy, i); +- ftvi = (KFileTreeViewItem *)sipForceConvertTo_KFileTreeViewItem (elem, &iserr); ++ ftvi = (KFileTreeViewItem *)sipForceConvertToType(elem, sipType_KFileTreeViewItem, sipTransferObj, SIP_NO_CONVERTORS, NULL, &iserr); + + if (iserr) + { +@@ -212,7 +212,7 @@ + for (int i = 0; i < PyList_Size (sipPy); i++) + { + elem = PyList_GET_ITEM (sipPy, i); +- ftb = (KFileTreeBranch *)sipForceConvertTo_KFileTreeBranch (elem, &iserr); ++ ftb = (KFileTreeBranch *)sipForceConvertToType(elem, sipType_KFileTreeBranch, sipTransferObj, SIP_NO_CONVERTORS, NULL, &iserr); + + if (iserr) + { +diff -ruN PyKDE-3.16.2/sip/kfile/knotifydialog.sip PyKDE-3.16.3/sip/kfile/knotifydialog.sip +--- PyKDE-3.16.2/sip/kfile/knotifydialog.sip 2008-03-04 20:47:14.000000000 +0000 ++++ PyKDE-3.16.3/sip/kfile/knotifydialog.sip 2009-06-10 20:40:41.000000000 +0100 +@@ -292,7 +292,7 @@ + for (int i = 0; i < PyList_Size (sipPy); i++) + { + elem = PyList_GET_ITEM (sipPy, i); +- cpp = (KNotify::Event *)sipForceConvertTo_KNotify_Event (elem, &iserr); ++ cpp = (KNotify::Event *)sipForceConvertToType(elem, sipType_KNotify_Event, sipTransferObj, SIP_NO_CONVERTORS, NULL, &iserr); + + if (iserr) + { +diff -ruN PyKDE-3.16.2/sip/khtml/khtml_settings.sip PyKDE-3.16.3/sip/khtml/khtml_settings.sip +--- PyKDE-3.16.2/sip/khtml/khtml_settings.sip 2008-03-04 20:47:14.000000000 +0000 ++++ PyKDE-3.16.3/sip/khtml/khtml_settings.sip 2009-06-10 22:41:39.000000000 +0100 +@@ -235,8 +235,8 @@ + { + QString s = (*it).first; + QChar c = (*it).second; +- PyObject *pys = sipBuildResult (NULL, "N", new QString (s), sipClass_QString); +- PyObject *pyc = sipBuildResult (NULL, "N", new QChar (c), sipClass_QChar); ++ PyObject *pys = sipConvertFromNewType(new QString(s), sipType_QString, sipTransferObj); ++ PyObject *pyc = sipConvertFromNewType(new QChar(c), sipType_QChar, sipTransferObj); + if ((pys == NULL) || ((inst = Py_BuildValue ("NN", pys, pyc)) == NULL) + || PyList_Append (pylist, inst) < 0) + { +@@ -258,26 +258,34 @@ + + QValueList *cpplist = new QValueList; + +- QString p1; +- QChar p2; ++ QString *p1; ++ QChar *p2; + int iserr = 0; + + for (int i = 0; i < PyList_Size (sipPy); i++) + { ++ int p1_state, p2_state; ++ + PyObject *elem = PyList_GET_ITEM (sipPy, i); + PyObject *pyp1 = PyTuple_GET_ITEM (elem, 0); + PyObject *pyp2 = PyTuple_GET_ITEM (elem, 1); +- p1 = *(QString *)sipForceConvertTo_QString (pyp1, &iserr); +- p2 = *(QChar *)sipForceConvertTo_QChar (pyp2, &iserr); ++ p1 = (QString *)sipForceConvertToType(pyp1, sipType_QString, sipTransferObj, SIP_NOT_NONE, &p1_state, &iserr); ++ p2 = (QChar *)sipForceConvertToType(pyp2, sipType_QChar, sipTransferObj, SIP_NOT_NONE, &p2_state, &iserr); + + if (iserr) + { ++ if (p1) ++ sipReleaseType(p1, sipType_QString, p1_state); ++ + *sipIsErr = 1; + delete cpplist; + return 0; + } + +- cpplist->append (AssignPair (p1, p2)); ++ cpplist->append (AssignPair (*p1, *p2)); ++ ++ sipReleaseType(p1, sipType_QString, p1_state); ++ sipReleaseType(p2, sipType_QChar, p2_state); + } + + *sipCppPtr = cpplist; +diff -ruN PyKDE-3.16.2/sip/kio/authinfo.sip PyKDE-3.16.3/sip/kio/authinfo.sip +--- PyKDE-3.16.2/sip/kio/authinfo.sip 2008-03-04 20:47:14.000000000 +0000 ++++ PyKDE-3.16.3/sip/kio/authinfo.sip 2009-06-10 22:42:44.000000000 +0100 +@@ -180,19 +180,25 @@ + + while (PyDict_Next(sipPy, &pos, &key, &value)) + { +- int iserr = 0; ++ int iserr = 0, sKey_state, sData_state; + +- sKey = (QString *)sipForceConvertTo_QString (key, &iserr); +- sData = (QStringList *)sipForceConvertTo_QStringList (value, &iserr); ++ sKey = (QString *)sipForceConvertToType(key, sipType_QString, sipTransferObj, SIP_NOT_NONE, &sKey_state, &iserr); ++ sData = (QStringList *)sipForceConvertToType(value, sipType_QStringList, sipTransferObj, SIP_NOT_NONE, &sData_state, &iserr); + + if (iserr) + { ++ if (sKey) ++ sipReleaseType(sKey, sipType_QString, sKey_state); ++ + *sipIsErr = 1; + delete map; + return 0; + } + + map->insert (*sKey, *sData); ++ ++ sipReleaseType(sKey, sipType_QString, sKey_state); ++ sipReleaseType(sData, sipType_QStringList, sData_state); + } + + *sipCppPtr = map; +diff -ruN PyKDE-3.16.2/sip/kio/global.sip PyKDE-3.16.3/sip/kio/global.sip +--- PyKDE-3.16.2/sip/kio/global.sip 2008-03-04 20:47:14.000000000 +0000 ++++ PyKDE-3.16.3/sip/kio/global.sip 2009-06-10 22:44:48.000000000 +0100 +@@ -483,13 +483,13 @@ + if (sipParseArgs(&sipArgsParsed,sipArgs,"T", &PyDict_Type, &dict)) + { + int isErr = 0; +- KIO::MetaData *map = (KIO::MetaData *)sipForceConvertTo_KIO_MetaData (dict, &isErr); ++ KIO::MetaData *map = (KIO::MetaData *)sipForceConvertToType(dict, sipType_KIO_MetaData, NULL, SIP_NO_CONVERTORS, NULL, &isErr); + if (isErr) + { + Py_INCREF (Py_None); + return Py_None; + } +- return sipConvertFrom_KIO_MetaData ((KIO::MetaData *)map, NULL); ++ return sipConvertFromType(map, sipType_KIO_MetaData, NULL); + } + %End + +@@ -520,7 +520,7 @@ + QValueList::Iterator it; + for( it = cpplist->begin(); it != cpplist->end(); ++it ) + { +- if (((inst = sipBuildResult (NULL, "N", new KIO::UDSAtom (*it), sipClass_KIO_UDSAtom)) == NULL) ++ if (((inst = sipConvertFromNewType(new KIO::UDSAtom(*it), sipType_KIO_UDSAtom, NULL)) == NULL) + || PyList_Append (pylist, inst) < 0) + { + Py_DECREF (pylist); +@@ -545,7 +545,7 @@ + for (int i = 0; i < PyList_Size (sipPy); i++) + { + elem = PyList_GET_ITEM (sipPy, i); +- cpp = (KIO::UDSAtom *)sipForceConvertTo_KIO_UDSAtom (elem, &iserr); ++ cpp = (KIO::UDSAtom *)sipForceConvertToType(elem, sipType_KIO_UDSAtom, sipTransferObj, SIP_NOT_NONE|SIP_NO_CONVERTORS, NULL, &iserr); + + if (iserr) + { +@@ -589,7 +589,7 @@ + for( it = cpplist->begin(); it != cpplist->end(); ++it ) + { + KIO::UDSEntry cpp = *it; +- inst = sipConvertFrom_KIO_UDSEntry (&cpp, sipTransferObj); ++ inst = sipConvertFromType(&cpp, sipType_KIO_UDSEntry, sipTransferObj); + + if (PyList_Append (pylist, inst) < 0) + { +@@ -615,7 +615,7 @@ + for (int i = 0; i < PyList_Size (sipPy); i++) + { + elem = PyList_GET_ITEM (sipPy, i); +- cpp = (KIO::UDSEntry *)sipForceConvertTo_KIO_UDSEntry (elem, &iserr); ++ cpp = (KIO::UDSEntry *)sipForceConvertToType(elem, sipType_KIO_UDSEntry, sipTransferObj, SIP_NOT_NONE|SIP_NO_CONVERTORS, NULL, &iserr); + + if (iserr) + { +@@ -666,8 +666,8 @@ + QString bcpp = it.data (); + PyObject *ainst; + PyObject *binst; +- if (((ainst = sipBuildResult (NULL, "N", new QString (acpp), sipClass_QString)) == NULL) +- || ((binst = sipBuildResult (NULL, "N", new QString (bcpp), sipClass_QString)) == NULL) ++ if (((ainst = sipConvertFromNewType(new QString(acpp), sipType_QString, sipTransferObj)) == NULL) ++ || ((binst = sipConvertFromNewType(new QString(bcpp), sipType_QString, sipTransferObj)) == NULL) + || (PyDict_SetItem (dict, ainst, binst) < 0)) + { + Py_XDECREF (ainst); +@@ -697,19 +697,25 @@ + + while (PyDict_Next(sipPy, &pos, &aelem, &belem)) + { +- int iserr = 0; ++ int iserr = 0, acpp_state, bcpp_state; + +- acpp = (QString *)sipForceConvertTo_QString (aelem, &iserr); +- bcpp = (QString *)sipForceConvertTo_QString (belem, &iserr); ++ acpp = (QString *)sipForceConvertToType(aelem, sipType_QString, sipTransferObj, SIP_NOT_NONE, &acpp_state, &iserr); ++ bcpp = (QString *)sipForceConvertToType(belem, sipType_QString, sipTransferObj, SIP_NOT_NONE, &bcpp_state, &iserr); + + if (iserr) + { ++ if (acpp) ++ sipReleaseType(acpp, sipType_QString, acpp_state); ++ + *sipIsErr = 1; + delete cppmap; + return 0; + } + + cppmap->insert (*acpp, *bcpp); ++ ++ sipReleaseType(acpp, sipType_QString, acpp_state); ++ sipReleaseType(bcpp, sipType_QString, bcpp_state); + } + + *sipCppPtr = (KIO::MetaData *)cppmap; +diff -ruN PyKDE-3.16.2/sip/kio/jobclasses.sip PyKDE-3.16.3/sip/kio/jobclasses.sip +--- PyKDE-3.16.2/sip/kio/jobclasses.sip 2006-09-22 04:11:14.000000000 +0100 ++++ PyKDE-3.16.3/sip/kio/jobclasses.sip 2009-06-10 20:56:03.000000000 +0100 +@@ -702,7 +702,7 @@ + QValueList::Iterator it; + for( it = cpplist->begin(); it != cpplist->end(); ++it ) + { +- if (((inst = sipBuildResult (NULL, "N", new KIO::CopyInfo (*it), sipClass_KIO_CopyInfo)) == NULL) ++ if (((inst = sipConvertFromNewType(new KIO::CopyInfo(*it), sipType_KIO_CopyInfo, NULL)) == NULL) + || PyList_Append (pylist, inst) < 0) + { + Py_DECREF (pylist); +@@ -727,7 +727,7 @@ + for (int i = 0; i < PyList_Size (sipPy); i++) + { + elem = PyList_GET_ITEM (sipPy, i); +- cpp = (KIO::CopyInfo *)sipForceConvertTo_KIO_CopyInfo (elem, &iserr); ++ cpp = (KIO::CopyInfo *)sipForceConvertToType(elem, sipType_KIO_CopyInfo, sipTransferObj, SIP_NOT_NONE|SIP_NO_CONVERTORS, NULL, &iserr); + + if (iserr) + { +diff -ruN PyKDE-3.16.2/sip/kio/kacl.sip PyKDE-3.16.3/sip/kio/kacl.sip +--- PyKDE-3.16.2/sip/kio/kacl.sip 2008-03-04 20:47:14.000000000 +0000 ++++ PyKDE-3.16.3/sip/kio/kacl.sip 2009-06-10 22:46:06.000000000 +0100 +@@ -114,7 +114,7 @@ + { + QString s = (*it).first; + ushort u = (*it).second; +- PyObject *pys = sipBuildResult (NULL, "N", new QString (s), sipClass_QString); ++ PyObject *pys = sipConvertFromNewType(new QString(s), sipType_QString, sipTransferObj); + if ((pys == NULL) || ((inst = Py_BuildValue ("Ni", pys, u)) == NULL) + || PyList_Append (pylist, inst) < 0) + { +@@ -135,14 +135,16 @@ + + QValueList *cpplist = new QValueList; + +- QString p1; ++ QString *p1; + int iserr = 0; + + for (int i = 0; i < PyList_Size (sipPy); i++) + { ++ int p1_state; ++ + PyObject *elem = PyList_GET_ITEM (sipPy, i); + PyObject *pyp1 = PyTuple_GET_ITEM (elem, 0); +- p1 = *(QString *)sipForceConvertTo_QString (pyp1, &iserr); ++ p1 = (QString *)sipForceConvertToType(pyp1, sipType_QString, sipTransferObj, SIP_NOT_NONE, &p1_state, &iserr); + + if (iserr) + { +@@ -152,7 +154,9 @@ + } + ushort p2 = (ushort)(PyInt_AS_LONG (PyTuple_GET_ITEM (elem, 1))); + +- cpplist->append (ACLUserPermissions (p1, p2)); ++ cpplist->append (ACLUserPermissions (*p1, p2)); ++ ++ sipReleaseType(p1, sipType_QString, p1_state); + } + + *sipCppPtr = cpplist; +diff -ruN PyKDE-3.16.2/sip/kio/kdatatool.sip PyKDE-3.16.3/sip/kio/kdatatool.sip +--- PyKDE-3.16.2/sip/kio/kdatatool.sip 2008-03-04 20:47:14.000000000 +0000 ++++ PyKDE-3.16.3/sip/kio/kdatatool.sip 2009-06-10 20:58:49.000000000 +0100 +@@ -124,7 +124,7 @@ + QValueList::Iterator it; + for( it = dlist->begin(); it != dlist->end(); ++it ) + { +- if ((inst = sipBuildResult (NULL, "N", new KDataToolInfo (*it), sipClass_KDataToolInfo)) == NULL ++ if ((inst = sipConvertFromNewType(new KDataToolInfo(*it), sipType_KDataToolInfo, NULL)) == NULL + || PyList_Append (dtiList, inst) < 0) + { + Py_DECREF (dtiList); +@@ -151,7 +151,7 @@ + for (int i = 0; i < PyList_Size (sipPy); i++) + { + elem = PyList_GET_ITEM (sipPy, i); +- d = (KDataToolInfo *)sipForceConvertTo_KDataToolInfo (elem, &iserr); ++ d = (KDataToolInfo *)sipForceConvertToType(elem, sipType_KDataToolInfo, sipTransferObj, SIP_NOT_NONE|SIP_NO_CONVERTORS, NULL, &iserr); + + if (iserr) + { +diff -ruN PyKDE-3.16.2/sip/kio/kdirlister.sip PyKDE-3.16.3/sip/kio/kdirlister.sip +--- PyKDE-3.16.2/sip/kio/kdirlister.sip 2008-03-04 20:47:14.000000000 +0000 ++++ PyKDE-3.16.3/sip/kio/kdirlister.sip 2009-06-10 21:00:30.000000000 +0100 +@@ -176,7 +176,7 @@ + for (int i = 0; i < PyList_Size (sipPy); i++) + { + elem = PyList_GET_ITEM (sipPy, i); +- cpp = (KFileItem *)sipForceConvertTo_KFileItem (elem, &iserr); ++ cpp = (KFileItem *)sipForceConvertToType(elem, sipType_KFileItem, sipTransferObj, SIP_NO_CONVERTORS, NULL, &iserr); + + if (iserr) + { +@@ -246,7 +246,7 @@ + for (int i = 0; i < PyList_Size (sipPy); i++) + { + elem = PyList_GET_ITEM (sipPy, i); +- cpp = (QRegExp *)sipForceConvertTo_QRegExp (elem, &iserr); ++ cpp = (QRegExp *)sipForceConvertToType(elem, sipType_QRegExp, sipTransferObj, SIP_NO_CONVERTORS, NULL, &iserr); + + if (iserr) + { +diff -ruN PyKDE-3.16.2/sip/kio/kmimetype.sip PyKDE-3.16.3/sip/kio/kmimetype.sip +--- PyKDE-3.16.2/sip/kio/kmimetype.sip 2008-03-04 20:47:14.000000000 +0000 ++++ PyKDE-3.16.3/sip/kio/kmimetype.sip 2009-06-10 21:07:26.000000000 +0100 +@@ -263,10 +263,10 @@ + // Convert a Python instance to a Ptr on the heap. + + if (sipIsErr == NULL) +- return PyInstance_Check(sipPy); ++ return sipCanConvertToType(sipPy, sipType_KMimeType, SIP_NO_CONVERTORS); + + int iserr = 0; +- KMimeType *cpp = (KMimeType *)sipForceConvertTo_KMimeType (sipPy, &iserr); ++ KMimeType *cpp = (KMimeType *)sipConvertToType(sipPy, sipType_KMimeType, sipTransferObj, SIP_NO_CONVERTORS, NULL, &iserr); + + if (iserr) + { +@@ -305,7 +305,7 @@ + QValueList::Iterator it; + for( it = cpplist->begin(); it != cpplist->end(); ++it ) + { +- if (((inst = sipBuildResult (NULL, "N", new KDEDesktopMimeType::Service (*it), sipClass_KDEDesktopMimeType_Service)) == NULL) ++ if (((inst = sipConvertFromNewType(new KDEDesktopMimeType::Service(*it), sipType_KDEDesktopMimeType_Service, NULL)) == NULL) + || PyList_Append (pylist, inst) < 0) + { + Py_DECREF (pylist); +@@ -330,7 +330,7 @@ + for (int i = 0; i < PyList_Size (sipPy); i++) + { + elem = PyList_GET_ITEM (sipPy, i); +- cpp = (KDEDesktopMimeType::Service *)sipForceConvertTo_KDEDesktopMimeType_Service (elem, &iserr); ++ cpp = (KDEDesktopMimeType::Service *)sipForceConvertToType(elem, sipType_KDEDesktopMimeType_Service, sipTransferObj, SIP_NOT_NONE|SIP_NO_CONVERTORS, NULL, &iserr); + + if (iserr) + { +@@ -379,7 +379,7 @@ + for( it = cList->begin(); it != cList->end(); ++it ) + { + svc = new KMimeType (*(KMimeType *)((KMimeType::Ptr)(*it)).data ()); +- inst = sipBuildResult (NULL, "N", svc, sipClass_KMimeType); ++ inst = sipConvertFromNewType(svc, sipType_KMimeType, NULL); + if ((inst == NULL) || (PyList_Append (plist, inst) < 0)) + { + Py_XDECREF (inst); +@@ -405,7 +405,7 @@ + for (int i = 0; i < PyList_Size (sipPy); i++) + { + elem = PyList_GET_ITEM (sipPy, i); +- service = (KMimeType *)sipForceConvertTo_KMimeType (elem, &iserr); ++ service = (KMimeType *)sipForceConvertToType(elem, sipType_KMimeType, sipTransferObj, SIP_NOT_NONE|SIP_NO_CONVERTORS, NULL, &iserr); + + KMimeType::Ptr *ptr = new KMimeType::Ptr (service); + +diff -ruN PyKDE-3.16.2/sip/kio/kprotocolinfo.sip PyKDE-3.16.3/sip/kio/kprotocolinfo.sip +--- PyKDE-3.16.2/sip/kio/kprotocolinfo.sip 2008-03-04 20:47:14.000000000 +0000 ++++ PyKDE-3.16.3/sip/kio/kprotocolinfo.sip 2009-06-10 21:10:40.000000000 +0100 +@@ -198,10 +198,10 @@ + // Convert a Python instance to a Ptr on the heap. + + if (sipIsErr == NULL) +- return PyInstance_Check(sipPy); ++ return sipCanConvertToType(sipPy, sipType_KProtocolInfo, SIP_NO_CONVERTORS); + + int iserr = 0; +- KProtocolInfo *cpp = (KProtocolInfo *)sipForceConvertTo_KProtocolInfo (sipPy, &iserr); ++ KProtocolInfo *cpp = (KProtocolInfo *)sipConvertToType(sipPy, sipType_KProtocolInfo, sipTransferObj, SIP_NO_CONVERTORS, NULL, &iserr); + + if (iserr) + { +@@ -240,7 +240,7 @@ + QValueList::Iterator it; + for( it = cpplist->begin(); it != cpplist->end(); ++it ) + { +- if (((inst = sipBuildResult (NULL, "N", new KProtocolInfo::ExtraField (*it), sipClass_KProtocolInfo_ExtraField)) == NULL) ++ if (((inst = sipConvertToNewType(new KProtocolInfo::ExtraField(*it), sipType_KProtocolInfo_ExtraField, NULL)) == NULL) + || PyList_Append (pylist, inst) < 0) + { + Py_DECREF (pylist); +@@ -265,7 +265,7 @@ + for (int i = 0; i < PyList_Size (sipPy); i++) + { + elem = PyList_GET_ITEM (sipPy, i); +- cpp = (KProtocolInfo::ExtraField *)sipForceConvertTo_KProtocolInfo_ExtraField (elem, &iserr); ++ cpp = (KProtocolInfo::ExtraField *)sipForceConvertToType(elem, sipType_KProtocolInfo_ExtraField, sipTransferObj, SIP_NOT_NONE|SIP_NO_CONVERTORS, NULL, &iserr); + + if (iserr) + { +diff -ruN PyKDE-3.16.2/sip/kio/kservicegroup.sip PyKDE-3.16.3/sip/kio/kservicegroup.sip +--- PyKDE-3.16.2/sip/kio/kservicegroup.sip 2008-03-04 20:47:14.000000000 +0000 ++++ PyKDE-3.16.3/sip/kio/kservicegroup.sip 2009-06-10 21:58:33.000000000 +0100 +@@ -184,10 +184,10 @@ + // Convert a Python instance to a Ptr on the heap. + + if (sipIsErr == NULL) +- return PyInstance_Check(sipPy); ++ return sipCanConvertToType(sipPy, sipType_KServiceGroup, SIP_NO_CONVERTORS); + + int iserr = 0; +- KServiceGroup *cpp = (KServiceGroup *)sipForceConvertTo_KServiceGroup (sipPy, &iserr); ++ KServiceGroup *cpp = (KServiceGroup *)sipConvertToType(sipPy, sipType_KServiceGroup, sipTransferObj, SIP_NO_CONVERTORS, NULL, &iserr); + + if (iserr) + { +@@ -216,37 +216,37 @@ + %ConvertFromTypeCode + // Convert to a Python list of Ptr (KService). + +- if (!sipCpp) +- return PyList_New (0); +- +- PyObject *plist; ++ if (!sipCpp) ++ return PyList_New (0); + + // Create the list + ++ PyObject *plist; ++ + if ((plist = PyList_New(0)) == NULL) + return NULL; + + // Get it. + +- KServiceGroup::List *cList = (KServiceGroup::List *)sipCpp; +- PyObject *inst; +- KSharedPtr *svcGroupType; ++ KServiceGroup::List *cList = (KServiceGroup::List *)sipCpp; ++ PyObject *inst; ++ KSharedPtr *svcGroupType; + + KServiceGroup::List::Iterator it; +- for( it = cList->begin(); it != cList->end(); ++it ) ++ for( it = cList->begin(); it != cList->end(); ++it ) + { +- svcGroupType = &(KServiceGroup::SPtr)(*it); +- inst = sipConvertFrom_KSycocaEntry_Ptr (svcGroupType, sipTransferObj); ++ svcGroupType = &(KServiceGroup::SPtr)(*it); ++ inst = sipConvertFromType(svcGroupType, sipType_KSycocaEntry_Ptr, sipTransferObj); + +- if ((inst == NULL) || (PyList_Append (plist, inst) < 0)) +- { +- Py_XDECREF (inst); +- Py_DECREF (plist); +- return NULL; +- } ++ if ((inst == NULL) || (PyList_Append (plist, inst) < 0)) ++ { ++ Py_XDECREF (inst); ++ Py_DECREF (plist); ++ return NULL; ++ } + } + +- return plist; ++ return plist; + %End + + %ConvertToTypeCode +@@ -255,28 +255,28 @@ + if (sipIsErr == NULL) + return PyList_Check(sipPy); + +- KServiceGroup::List *cList = new KServiceGroup::List; +- +- PyObject *elem; +- KSycocaEntry *service; +- int iserr = 0; ++ KServiceGroup::List *cList = new KServiceGroup::List; + +- for (int i = 0; i < PyList_Size (sipPy); i++) +- { +- elem = PyList_GET_ITEM (sipPy, i); +- service = (KSycocaEntry *)sipForceConvertTo_KSycocaEntry (elem, &iserr); ++ PyObject *elem; ++ KSycocaEntry *service; ++ int iserr = 0; + +- if (iserr) +- { +- *sipIsErr = 1; +- delete cList; +- return 0; +- } ++ for (int i = 0; i < PyList_Size (sipPy); i++) ++ { ++ elem = PyList_GET_ITEM (sipPy, i); ++ service = (KSycocaEntry *)sipForceConvertToType(elem, sipType_KSycocaEntry, sipTransferObj, SIP_NO_CONVERTORS, NULL, &iserr); + +- KServiceGroup::SPtr *ptr = new KServiceGroup::SPtr (service); +- cList->append (*ptr); ++ if (iserr) ++ { ++ *sipIsErr = 1; ++ delete cList; ++ return 0; + } + ++ KServiceGroup::SPtr *ptr = new KServiceGroup::SPtr (service); ++ cList->append (*ptr); ++ } ++ + *sipCppPtr = cList; + + return 1; +diff -ruN PyKDE-3.16.2/sip/kio/kservice.sip PyKDE-3.16.3/sip/kio/kservice.sip +--- PyKDE-3.16.2/sip/kio/kservice.sip 2008-03-04 20:47:14.000000000 +0000 ++++ PyKDE-3.16.3/sip/kio/kservice.sip 2009-06-10 21:59:28.000000000 +0100 +@@ -185,10 +185,10 @@ + // Convert a Python instance to a Ptr on the heap. + + if (sipIsErr == NULL) +- return PyInstance_Check(sipPy); ++ return sipCanConvertToType(sipPy, sipType_KService, SIP_NO_CONVERTORS); + + int iserr = 0; +- KService *cpp = (KService *)sipForceConvertTo_KService (sipPy, &iserr); ++ KService *cpp = (KService *)sipConvertToType(sipPy, sipType_KService, sipTransferObj, SIP_NO_CONVERTORS, NULL, &iserr); + + if (iserr) + { +@@ -236,7 +236,7 @@ + for( it = cList->begin(); it != cList->end(); ++it ) + { + svc = &(KService::Ptr)(*it); +- inst = sipConvertFrom_KService_Ptr (svc, sipTransferObj); ++ inst = sipConvertFromType(svc, sipType_KService_Ptr, sipTransferObj); + + if ((inst == NULL) || (PyList_Append (plist, inst) < 0)) + { +@@ -263,9 +263,7 @@ + for (int i = 0; i < PyList_Size (sipPy); i++) + { + elem = PyList_GET_ITEM (sipPy, i); +- service = (KService *)sipForceConvertTo_KService (elem, &iserr); +- +- KService::Ptr *ptr = new KService::Ptr (service); ++ service = (KService *)sipForceConvertToType(elem, sipType_KService, sipTransferObj, SIP_NO_CONVERTORS, NULL, &iserr); + + if (iserr) + { +@@ -274,7 +272,9 @@ + return 0; + } + +- cList->append (*ptr); ++ KService::Ptr ptr(service); ++ ++ cList->append (ptr); + } + + *sipCppPtr = cList; +diff -ruN PyKDE-3.16.2/sip/kio/kservicetype.sip PyKDE-3.16.3/sip/kio/kservicetype.sip +--- PyKDE-3.16.2/sip/kio/kservicetype.sip 2008-11-13 22:57:32.000000000 +0000 ++++ PyKDE-3.16.3/sip/kio/kservicetype.sip 2009-06-10 22:48:24.000000000 +0100 +@@ -106,10 +106,10 @@ + // Convert a Python instance to a Ptr on the heap. + + if (sipIsErr == NULL) +- return PyInstance_Check(sipPy); ++ return sipCanConvertToType(sipPy, sipType_KServiceType, SIP_NO_CONVERTORS); + + int iserr = 0; +- KServiceType *cpp = (KServiceType *)sipForceConvertTo_KServiceType (sipPy, &iserr); ++ KServiceType *cpp = (KServiceType *)sipConvertToType(sipPy, sipType_KServiceType, sipTransferObj, SIP_NO_CONVERTORS, NULL, &iserr); + + if (iserr) + { +@@ -156,7 +156,7 @@ + int bcpp = (int) it.data (); + PyObject *ainst; + PyObject *binst = PyInt_FromLong (bcpp); +- if (((ainst = sipBuildResult (NULL, "N", new QString (acpp), sipClass_QString)) == NULL) ++ if (((ainst = sipConvertFromNewType(new QString (acpp), sipType_QString, sipTransferObj)) == NULL) + || (PyDict_SetItem (dict, ainst, binst) < 0)) + { + Py_XDECREF (ainst); +@@ -176,7 +176,6 @@ + if (sipIsErr == NULL) + return PyDict_Check(sipPy); + +- + QMap *cppmap = new QMap; + + PyObject *aelem, *belem; +@@ -186,19 +185,25 @@ + + while (PyDict_Next(sipPy, &pos, &aelem, &belem)) + { +- int iserr = 0; ++ int iserr = 0, acpp_state; ++ ++ acpp = (QString *)sipForceConvertToType(aelem, sipType_QString, sipTransferObj, SIP_NOT_NONE, &acpp_state, &iserr); + +- if (!PyInt_Check (belem) || iserr) ++ if (iserr || !PyInt_Check(belem)) + { ++ if (acpp_state) ++ sipReleaseType(acpp, sipType_QString, acpp_state); ++ + *sipIsErr = 1; + delete cppmap; + return 0; + } + +- acpp = (QString *)sipForceConvertTo_QString (aelem, &iserr); + bcpp = (QVariant::Type) PyInt_AS_LONG(belem); + + cppmap->insert (*acpp, bcpp); ++ ++ sipReleaseType(acpp, sipType_QString, acpp_state); + } + + *sipCppPtr = cppmap; +@@ -236,7 +241,7 @@ + for( it = cList->begin(); it != cList->end(); ++it ) + { + svc = &(KServiceType::Ptr)(*it); +- inst = sipConvertFrom_KServiceType_Ptr (svc, sipTransferObj); ++ inst = sipConvertFromType(svc, sipType_KServiceType_Ptr, sipTransferObj); + + if ((inst == NULL) || (PyList_Append (plist, inst) < 0)) + { +@@ -264,9 +269,7 @@ + for (int i = 0; i < PyList_Size (sipPy); i++) + { + elem = PyList_GET_ITEM (sipPy, i); +- service = (KServiceType *)sipForceConvertTo_KServiceType (elem, &iserr); +- +- KServiceType::Ptr *ptr = new KServiceType::Ptr (service); ++ service = (KServiceType *)sipForceConvertToType(elem, sipType_KServiceType, sipTransferObj, SIP_NO_CONVERTORS, NULL, &iserr); + + if (iserr) + { +@@ -275,7 +278,9 @@ + return 0; + } + +- cList->append (*ptr); ++ KServiceType::Ptr ptr(service); ++ ++ cList->append (ptr); + } + + *sipCppPtr = cList; +diff -ruN PyKDE-3.16.2/sip/kio/ksycocaentry.sip PyKDE-3.16.3/sip/kio/ksycocaentry.sip +--- PyKDE-3.16.2/sip/kio/ksycocaentry.sip 2008-03-04 20:47:14.000000000 +0000 ++++ PyKDE-3.16.3/sip/kio/ksycocaentry.sip 2009-06-10 22:01:05.000000000 +0100 +@@ -90,10 +90,10 @@ + // Convert a Python instance to a Ptr on the heap. + + if (sipIsErr == NULL) +- return PyInstance_Check(sipPy); ++ return sipCanConvertToType(sipPy, sipType_KSycocaEntry, SIP_NO_CONVERTORS); + + int iserr = 0; +- KSycocaEntry *cpp = (KSycocaEntry *)sipForceConvertTo_KSycocaEntry (sipPy, &iserr); ++ KSycocaEntry *cpp = (KSycocaEntry *)sipConvertToType(sipPy, sipType_KSycocaEntry, sipTransferObj, SIP_NO_CONVERTORS, NULL, &iserr); + + if (iserr) + { +@@ -148,12 +148,12 @@ + if (svc->data ()->sycocaType () == KST_KService) + { + svcType = (KSharedPtr *)svc; +- inst = sipConvertFrom_KService_Ptr (svcType, sipTransferObj); ++ inst = sipConvertFromType(svcType, sipType_KService_Ptr, sipTransferObj); + } + else if (svc->data ()->sycocaType () == KST_KServiceGroup) + { + svcGroupType = (KSharedPtr *) svc; +- inst = sipConvertFrom_KServiceGroup_Ptr (svcGroupType, sipTransferObj); ++ inst = sipConvertFromType(svcGroupType, sipType_KServiceGroup_Ptr, sipTransferObj); + } + else + inst = NULL; +@@ -175,28 +175,28 @@ + if (sipIsErr == NULL) + return PyList_Check(sipPy); + +- KSycocaEntry::List *cList = new KSycocaEntry::List; ++ KSycocaEntry::List *cList = new KSycocaEntry::List; + +- PyObject *elem; +- KSycocaEntry *service; +- int iserr = 0; ++ PyObject *elem; ++ KSycocaEntry *service; ++ int iserr = 0; + +- for (int i = 0; i < PyList_Size (sipPy); i++) +- { +- elem = PyList_GET_ITEM (sipPy, i); +- service = (KSycocaEntry *)sipForceConvertTo_KSycocaEntry (elem, &iserr); ++ for (int i = 0; i < PyList_Size (sipPy); i++) ++ { ++ elem = PyList_GET_ITEM (sipPy, i); ++ service = (KSycocaEntry *)sipForceConvertToType(elem, sipType_KSycocaEntry, sipTransferObj, SIP_NO_CONVERTORS, NULL, &iserr); + +- KSycocaEntry::Ptr *ptr = new KSycocaEntry::Ptr (service); ++ if (iserr) ++ { ++ *sipIsErr = 1; ++ delete cList; ++ return 0; ++ } + +- if (iserr) +- { +- *sipIsErr = 1; +- delete cList; +- return 0; +- } ++ KSycocaEntry::Ptr ptr(service); + +- cList->append (*ptr); +- } ++ cList->append (ptr); ++ } + + *sipCppPtr = cList; + +diff -ruN PyKDE-3.16.2/sip/kio/ktrader.sip PyKDE-3.16.3/sip/kio/ktrader.sip +--- PyKDE-3.16.2/sip/kio/ktrader.sip 2008-03-04 20:47:14.000000000 +0000 ++++ PyKDE-3.16.3/sip/kio/ktrader.sip 2009-06-10 22:02:03.000000000 +0100 +@@ -77,7 +77,7 @@ + for( it = cpplist->begin(); it != cpplist->end(); ++it ) + { + KService::Ptr cpp = *it; +- inst = sipConvertFrom_KService_Ptr (&cpp, NULL); ++ inst = sipConvertFromType(&cpp, sipType_KService_Ptr, sipTransferObj); + + if (PyList_Append (pylist, inst) < 0) + { +@@ -103,7 +103,7 @@ + for (int i = 0; i < PyList_Size (sipPy); i++) + { + elem = PyList_GET_ITEM (sipPy, i); +- cpp = (KService::Ptr *)sipForceConvertTo_KService_Ptr (elem, &iserr); ++ cpp = (KService::Ptr *)sipForceConvertToType(elem, sipType_KService_Ptr, sipTransferObj, SIP_NOT_NONE|SIP_NO_CONVERTORS, NULL, &iserr); + + if (iserr) + { +diff -ruN PyKDE-3.16.2/sip/kio/kuserprofile.sip PyKDE-3.16.3/sip/kio/kuserprofile.sip +--- PyKDE-3.16.2/sip/kio/kuserprofile.sip 2008-03-04 20:47:14.000000000 +0000 ++++ PyKDE-3.16.3/sip/kio/kuserprofile.sip 2009-06-10 21:35:11.000000000 +0100 +@@ -101,7 +101,7 @@ + QValueList::Iterator it; + for( it = cpplist->begin(); it != cpplist->end(); ++it ) + { +- if (((inst = sipBuildResult (NULL, "N", new KServiceOffer (*it), sipClass_KServiceOffer)) == NULL) ++ if (((inst = sipConvertFromNewType(new KServiceOffer(*it), sipType_KServiceOffer, NULL)) == NULL) + || PyList_Append (pylist, inst) < 0) + { + Py_DECREF (pylist); +@@ -125,7 +125,7 @@ + for (int i = 0; i < PyList_Size (sipPy); i++) + { + elem = PyList_GET_ITEM (sipPy, i); +- cpp = (KServiceOffer *)sipForceConvertTo_KServiceOffer (elem, &iserr); ++ cpp = (KServiceOffer *)sipForceConvertToType(elem, sipType_KServiceOffer, sipTransferObj, SIP_NOT_NONE|SIP_NO_CONVERTORS, NULL, &iserr); + + if (iserr) + { +@@ -201,7 +201,7 @@ + for (int i = 0; i < PyList_Size (sipPy); i++) + { + elem = PyList_GET_ITEM (sipPy, i); +- service = (KServiceTypeProfile *)sipForceConvertTo_KServiceTypeProfile (elem, &iserr); ++ service = (KServiceTypeProfile *)sipForceConvertToType(elem, sipType_KServiceTypeProfile, sipTransferObj, SIP_NO_CONVERTORS, NULL, &iserr); + + if (iserr) + { +diff -ruN PyKDE-3.16.2/sip/kmdi/kmdichildfrm.sip PyKDE-3.16.3/sip/kmdi/kmdichildfrm.sip +--- PyKDE-3.16.2/sip/kmdi/kmdichildfrm.sip 2008-03-04 20:47:14.000000000 +0000 ++++ PyKDE-3.16.3/sip/kmdi/kmdichildfrm.sip 2009-06-10 22:49:47.000000000 +0100 +@@ -249,12 +249,15 @@ + + while (PyDict_Next(sipPy, &pos, &key, &value)) + { +- int iserr = 0; ++ int iserr = 0, a0_state; + +- a0 = (QString *)sipForceConvertTo_QString (key, &iserr); ++ a0 = (QString *)sipForceConvertToType(key, sipType_QString, sipTransferObj, SIP_NOT_NONE, &a0_state, &iserr); + +- if ((iserr) || (!PyInt_Check (value))) ++ if (iserr || !PyInt_Check(value)) + { ++ if (a0) ++ sipReleaseType(a0, sipType_QString, a0_state); ++ + *sipIsErr = 1; + delete qdict; + return 0; +@@ -263,6 +266,8 @@ + a1 = (QWidget::FocusPolicy) PyInt_AS_LONG (value); + + qdict->insert (*a0, &a1); ++ ++ sipReleaseType(a0, sipType_QString, a0_state); + } + + *sipCppPtr = qdict; +diff -ruN PyKDE-3.16.2/sip/kmdi/kmdimainfrm.sip PyKDE-3.16.3/sip/kmdi/kmdimainfrm.sip +--- PyKDE-3.16.2/sip/kmdi/kmdimainfrm.sip 2006-09-22 04:11:14.000000000 +0100 ++++ PyKDE-3.16.3/sip/kmdi/kmdimainfrm.sip 2009-06-10 21:38:20.000000000 +0100 +@@ -251,7 +251,7 @@ + for (int i = 0; i < PyList_Size (sipPy); i++) + { + elem = PyList_GET_ITEM (sipPy, i); +- cpp = (KDockWidget *)sipForceConvertTo_KDockWidget (elem, &iserr); ++ cpp = (KDockWidget *)sipForceConvertToType(elem, sipType_KDockWidget, sipTransferObj, SIP_NO_CONVERTORS, NULL, &iserr); + + if (iserr) + { +@@ -293,7 +293,7 @@ + QValueList::Iterator it; + for( it = cpplist->begin(); it != cpplist->end(); ++it ) + { +- if (((inst = sipBuildResult (NULL, "N", new QRect (*it), sipClass_QRect)) == NULL) ++ if (((inst = sipConvertFromNewType(new QRect(*it), sipType_QRect, NULL)) == NULL) + || PyList_Append (pylist, inst) < 0) + { + Py_DECREF (pylist); +@@ -318,7 +318,7 @@ + for (int i = 0; i < PyList_Size (sipPy); i++) + { + elem = PyList_GET_ITEM (sipPy, i); +- cpp = (QRect *)sipForceConvertTo_QRect (elem, &iserr); ++ cpp = (QRect *)sipForceConvertToType(elem, sipType_QRect, sipTransferObj, SIP_NOT_NONE|SIP_NO_CONVERTORS, NULL, &iserr); + + if (iserr) + { +diff -ruN PyKDE-3.16.2/sip/kparts/browserextension.sip PyKDE-3.16.3/sip/kparts/browserextension.sip +--- PyKDE-3.16.2/sip/kparts/browserextension.sip 2008-03-04 20:47:14.000000000 +0000 ++++ PyKDE-3.16.3/sip/kparts/browserextension.sip 2009-06-10 21:42:21.000000000 +0100 +@@ -393,8 +393,8 @@ + QCString bcpp = it.data (); + PyObject *ainst; + PyObject *binst; +- if (((ainst = sipBuildResult (NULL, "N", new QCString (acpp), sipClass_QCString)) == NULL) +- || ((binst = sipBuildResult (NULL, "N", new QCString (bcpp), sipClass_QCString)) == NULL) ++ if (((ainst = sipConvertFromNewType(new QCString (acpp), sipType_QCString, NULL)) == NULL) ++ || ((binst = sipConvertFromNewType(new QCString (bcpp), sipType_QCString, NULL)) == NULL) + || (PyDict_SetItem (dict, ainst, binst) < 0)) + { + Py_XDECREF (ainst); +@@ -414,7 +414,6 @@ + if (sipIsErr == NULL) + return PyDict_Check(sipPy); + +- + QMap *cppmap = new QMap; + + PyObject *aelem, *belem; +@@ -426,8 +425,8 @@ + { + int iserr = 0; + +- acpp = (QCString *)sipForceConvertTo_QCString (aelem, &iserr); +- bcpp = (QCString *)sipForceConvertTo_QCString (belem, &iserr); ++ acpp = (QCString *)sipForceConvertToType(aelem, sipType_QCString, sipTransferObj, SIP_NOT_NONE|SIP_NO_CONVERTORS, NULL, &iserr); ++ bcpp = (QCString *)sipForceConvertToType(belem, sipType_QCString, sipTransferObj, SIP_NOT_NONE|SIP_NO_CONVERTORS, NULL, &iserr); + + if (iserr) + { +@@ -477,7 +476,7 @@ + int bcpp = it.data (); + PyObject *ainst; + PyObject *binst; +- if (((ainst = sipBuildResult (NULL, "N", new QCString (acpp), sipClass_QCString)) == NULL) ++ if (((ainst = sipConvertFromNewType(new QCString (acpp), sipType_QCString, NULL)) == NULL) + || ((binst = PyInt_FromLong (bcpp)) < 0) + || (PyDict_SetItem (dict, ainst, binst) < 0)) + { +@@ -498,7 +497,6 @@ + if (sipIsErr == NULL) + return PyDict_Check(sipPy); + +- + QMap *cppmap = new QMap; + + PyObject *aelem, *belem; +@@ -510,6 +508,8 @@ + { + int iserr = 0; + ++ acpp = (QCString *)sipForceConvertToType(aelem, sipType_QCString, sipTransferObj, SIP_NOT_NONE|SIP_NO_CONVERTORS, NULL, &iserr); ++ + if (iserr || !PyInt_Check (belem)) + { + *sipIsErr = 1; +@@ -517,7 +517,6 @@ + return 0; + } + +- acpp = (QCString *)sipForceConvertTo_QCString (aelem, &iserr); + bcpp = PyInt_AS_LONG (belem); + + cppmap->insert (*acpp, bcpp); +@@ -581,7 +580,7 @@ + for (int i = 0; i < PyList_Size (sipPy); i++) + { + elem = PyList_GET_ITEM (sipPy, i); +- cpp = (KParts::ReadOnlyPart *)sipForceConvertTo_KParts_ReadOnlyPart (elem, &iserr); ++ cpp = (KParts::ReadOnlyPart *)sipForceConvertToType(elem, sipType_KParts_ReadOnlyPart, sipTransferObj, SIP_NO_CONVERTORS, NULL, &iserr); + + if (iserr) + { +diff -ruN PyKDE-3.16.2/sip/kparts/partmanager.sip PyKDE-3.16.3/sip/kparts/partmanager.sip +--- PyKDE-3.16.2/sip/kparts/partmanager.sip 2006-09-22 04:11:15.000000000 +0100 ++++ PyKDE-3.16.3/sip/kparts/partmanager.sip 2009-06-10 21:43:19.000000000 +0100 +@@ -160,7 +160,7 @@ + for (int i = 0; i < PyList_Size (sipPy); i++) + { + elem = PyList_GET_ITEM (sipPy, i); +- cpp = (KParts::Part *)sipForceConvertTo_KParts_Part (elem, &iserr); ++ cpp = (KParts::Part *)sipForceConvertToType(elem, sipType_KParts_Part, sipTransferObj, SIP_NO_CONVERTORS, NULL, &iserr); + + if (iserr) + { +diff -ruN PyKDE-3.16.2/sip/kparts/plugin.sip PyKDE-3.16.3/sip/kparts/plugin.sip +--- PyKDE-3.16.2/sip/kparts/plugin.sip 2006-09-22 04:11:15.000000000 +0100 ++++ PyKDE-3.16.3/sip/kparts/plugin.sip 2009-06-10 21:46:11.000000000 +0100 +@@ -94,7 +94,7 @@ + QValueList::Iterator it; + for( it = cpplist->begin(); it != cpplist->end(); ++it ) + { +- if (((inst = sipBuildResult (NULL, "N", new KParts::Plugin::PluginInfo (*it), sipClass_KParts_Plugin_PluginInfo)) == NULL) ++ if (((inst = sipConvertFromNewType(new KParts::Plugin::PluginInfo(*it), sipType_KParts_Plugin_PluginInfo, NULL)) == NULL) + || PyList_Append (pylist, inst) < 0) + { + Py_DECREF (pylist); +@@ -119,7 +119,7 @@ + for (int i = 0; i < PyList_Size (sipPy); i++) + { + elem = PyList_GET_ITEM (sipPy, i); +- cpp = (KParts::Plugin::PluginInfo *)sipForceConvertTo_KParts_Plugin_PluginInfo (elem, &iserr); ++ cpp = (KParts::Plugin::PluginInfo *)sipForceConvertToType(elem, sipType_KParts_Plugin_PluginInfo, sipTransferObj, SIP_NOT_NONE|SIP_NO_CONVERTORS, NULL, &iserr); + + if (iserr) + { +@@ -189,7 +189,7 @@ + for (int i = 0; i < PyList_Size (sipPy); i++) + { + elem = PyList_GET_ITEM (sipPy, i); +- cpp = (KParts::Plugin *)sipForceConvertTo_KParts_Plugin (elem, &iserr); ++ cpp = (KParts::Plugin *)sipForceConvertToType(elem, sipType_KParts_Plugin, sipTransferObj, SIP_NO_CONVERTORS, NULL, &iserr); + + if (iserr) + { +diff -ruN PyKDE-3.16.2/sip/kresources/selectdialog.sip PyKDE-3.16.3/sip/kresources/selectdialog.sip +--- PyKDE-3.16.2/sip/kresources/selectdialog.sip 2008-03-04 20:47:14.000000000 +0000 ++++ PyKDE-3.16.3/sip/kresources/selectdialog.sip 2009-06-10 21:47:00.000000000 +0100 +@@ -110,7 +110,7 @@ + for (int i = 0; i < PyList_Size (sipPy); i++) + { + elem = PyList_GET_ITEM (sipPy, i); +- cpp = (KRES::Resource *)sipForceConvertTo_KRES_Resource (elem, &iserr); ++ cpp = (KRES::Resource *)sipForceConvertToType(elem, sipType_KRES_Resource, sipTransferObj, SIP_NO_CONVERTORS, NULL, &iserr); + + if (iserr) + { +diff -ruN PyKDE-3.16.2/sip/kutils/kplugininfo.sip PyKDE-3.16.3/sip/kutils/kplugininfo.sip +--- PyKDE-3.16.2/sip/kutils/kplugininfo.sip 2008-03-04 20:47:14.000000000 +0000 ++++ PyKDE-3.16.3/sip/kutils/kplugininfo.sip 2009-06-10 21:47:59.000000000 +0100 +@@ -126,7 +126,7 @@ + for (int i = 0; i < PyList_Size (sipPy); i++) + { + elem = PyList_GET_ITEM (sipPy, i); +- cpp = (KPluginInfo *)sipForceConvertTo_KPluginInfo (elem, &iserr); ++ cpp = (KPluginInfo *)sipForceConvertToType(elem, sipType_KPluginInfo, sipTransferObj, SIP_NO_CONVERTORS, NULL, &iserr); + + if (iserr) + { diff --git a/PyKDE.spec b/PyKDE.spec index f2db77d..03ea800 100644 --- a/PyKDE.spec +++ b/PyKDE.spec @@ -14,7 +14,7 @@ BuildRequires: libutempter-devel Summary: Python bindings for KDE3 Name: PyKDE Version: 3.16.2 -Release: 4%{?dist} +Release: 5%{?dist} License: GPLv2 URL: http://www.riverbankcomputing.com/software/pykde/intro @@ -25,12 +25,15 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) # http://mats.imk.fraunhofer.de/pipermail/pykde/2006-November/014627.html Patch2: PyKDE-3.16.0-kmimetype.patch +## upstream patches +Patch100: PyKDE-3.16.3.patch + BuildRequires: python-devel >= 2.3 %global python_ver %(%{__python} -c "import sys ; print sys.version[:3]") %global python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)") -BuildRequires: sip-devel >= 4.7.9 -BuildRequires: %{PyQt3}-devel >= 3.17.6 +BuildRequires: sip-devel >= 4.8 +BuildRequires: %{PyQt3}-devel >= 3.18 Provides: PyKDE3 = %{version}-%{release} @@ -65,6 +68,8 @@ Sip files and documentation needed for developing with %{name} %patch2 -p1 -b .kmimetype +%patch100 -p1 -b .PyKDE-3.16.3 + %build unset QTDIR || : ; source /etc/profile.d/qt.sh