-----------------------------------------------------------
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

Reply via email to