[Psi-devel] Just removing psi's type-punning warning thingy

Ephraim Talrock ephraim at coder-board.info
Thu Mar 8 11:23:51 PST 2007


Hey,

here is a patch which just removes the type punning warning which
appears when psiaccount.cpp being compiled, that one from qobject.h
stays.

Ciao Ephraim

--------------------------------------------------------------------------------------------------
Index: src/psiaccount.h
===================================================================
--- src/psiaccount.h    (Revision 376)
+++ src/psiaccount.h    (Arbeitskopie)
@@ -129,7 +129,7 @@
                QList<T> list;
                findDialogs(((T)0)->staticMetaObject,
                            jid, compareResource,
-                           reinterpret_cast<QList<void*>*>(&list));
+                           &list);
                return list;
        }
 
@@ -375,7 +375,8 @@
        void cleanupStream();
 
        QWidget* findDialog(const QMetaObject& mo, const Jid& jid, bool
compareResource) const;
-       void findDialogs(const QMetaObject& mo, const Jid& jid, bool
compareResource, QList<void*>* list) const;
+       template<typename T>
+       void findDialogs(const QMetaObject& mo, const Jid& jid, bool
compareResource, QList<T>* list) const;
 
        friend class Private;
 };
Index: src/psiaccount.cpp
===================================================================
--- src/psiaccount.cpp  (Revision 376)
+++ src/psiaccount.cpp  (Arbeitskopie)
@@ -371,11 +371,12 @@
                return 0;
        }
 
-       void findDialogs(const QMetaObject& mo, const Jid& jid, bool
compareResource, QList<void*>* list) const
+       template<typename T>
+       void findDialogs(const QMetaObject& mo, const Jid& jid, bool
compareResource, QList<T>* list) const
        {
                foreach(item_dialog2* i, dialogList) {
                        if (mo.cast(i->widget) && compareJids(i->jid,
jid, compareResource))
-                               list->append(i->widget);
+                               list->append((T)i->widget);
                }
        }
 
@@ -2276,9 +2277,10 @@
        return d->findDialog(mo, jid, compareResource);
 }
 
-void PsiAccount::findDialogs(const QMetaObject& mo, const Jid& jid,
bool compareResource, QList<void*>* list) const
+template<typename T>
+void PsiAccount::findDialogs(const QMetaObject& mo, const Jid& jid,
bool compareResource, QList<T>* list) const
 {
-       d->findDialogs(mo, jid, compareResource, list);
+       d->findDialogs<T>(mo, jid, compareResource, list);
 }
 
 void PsiAccount::dialogRegister(QWidget *w, const Jid &j)
--------------------------------------------------------------------------------------------------



More information about the psi-devel mailing list