----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: http://reviewboard.kde.org/r/1004/ -----------------------------------------------------------
(Updated 2009-07-13 18:50:24.946338) Review request for Kopete. Changes ------- Changed the summary to be more precise. Added changes to other parts of Kopete's source code, I am still going to analise directories plugins/* and protocols/* (except protocols/wlm, which is already done). Using 0L instead of 0 to initialize pointers. Summary (updated) ------- Initialise deleted pointers to 0L. Throughout all Kopete source code pointers are deleted and not initialized, grep -r 'delete ' $(find \( -name "*.cpp" -o -name "*.h" \) ) | wc returns 1105 lines, I can do a rough estimation of at least half of those lines do not reinitialize pointers. Althouth reinitialing pointers are not always necessary in some cases it does is necessary and by what I have seen there are such places in Kopete's source code. Kopete::CommandHandler::slotExecFinished even passed one deleted pointer to a function, which seems really wrong to me, it should delete the pointer after calling the function, not before. To illustrate the problem assume a is a class member pointer: delete a; // in one class method // In another class method: if (a) // the result will the true even though a is deleted do a->"something" // this can crash the application Diffs (updated) ----- /trunk/KDE/kdenetwork/kopete/kopete/chatwindow/chatview.cpp 993925 /trunk/KDE/kdenetwork/kopete/kopete/chatwindow/kopetechatwindow.cpp 993925 /trunk/KDE/kdenetwork/kopete/kopete/chatwindow/kopetechatwindowstylemanager.cpp 993925 /trunk/KDE/kdenetwork/kopete/kopete/config/accounts/kopeteaccountconfig.cpp 993925 /trunk/KDE/kdenetwork/kopete/kopete/config/appearance/layout/TokenDropTarget.cpp 993925 /trunk/KDE/kdenetwork/kopete/kopete/kopetewindow.cpp 993925 /trunk/KDE/kdenetwork/kopete/kopete/statusmenu/kopetestatusgroupaction.cpp 993925 /trunk/KDE/kdenetwork/kopete/kopete/statusmenu/kopetestatusrootaction.cpp 993925 /trunk/KDE/kdenetwork/kopete/libkopete/kopeteaccountmanager.cpp 993925 /trunk/KDE/kdenetwork/kopete/libkopete/kopetechatsession.cpp 993925 /trunk/KDE/kdenetwork/kopete/libkopete/kopetecommandhandler.cpp 993925 /trunk/KDE/kdenetwork/kopete/libkopete/kopetecontact.cpp 993925 /trunk/KDE/kdenetwork/kopete/libkopete/kopeteidentitymanager.cpp 993925 /trunk/KDE/kdenetwork/kopete/libkopete/kopeteproperty.cpp 993925 /trunk/KDE/kdenetwork/kopete/libkopete/kopetewalletmanager.cpp 993925 /trunk/KDE/kdenetwork/kopete/libkopete/private/kopeteviewmanager.cpp 993925 /trunk/KDE/kdenetwork/kopete/libkopete/ui/avatarselectorwidget.cpp 993925 /trunk/KDE/kdenetwork/kopete/libkopete/ui/kopetelistviewitem.cpp 993925 /trunk/KDE/kdenetwork/kopete/protocols/wlm/wlmchatmanager.cpp 993925 /trunk/KDE/kdenetwork/kopete/protocols/wlm/wlmlibmsn.cpp 993925 Diff: http://reviewboard.kde.org/r/1004/diff Testing ------- Thanks, Lamarque _______________________________________________ kopete-devel mailing list kopete-devel@kde.org https://mail.kde.org/mailman/listinfo/kopete-devel