-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://reviewboard.kde.org/r/1004/
-----------------------------------------------------------

(Updated 2009-07-13 13:08:03.646755)


Review request for Kopete.


Changes
-------

Assigning 0 instead of NULL, 0 is more C++ compliant. Adding an example code to 
illustrate the problem.


Summary (updated)
-------

Reinitialise deleted pointers to NULL. Throughout all Kopete source code (not 
only WLM protocol) pointers are deleted and not reinitialized, 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. Since analising 1105 linhes of code is a really tiring and boring 
task I did it only for the WLM protocol for now. 
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/protocols/wlm/wlmchatmanager.cpp 993925 
  /trunk/KDE/kdenetwork/kopete/protocols/wlm/wlmlibmsn.cpp 993925 
  /trunk/KDE/kdenetwork/kopete/protocols/wlm/wlmsocket.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