About last cppcheck fixes

julien2412 serval2412 at yahoo.fr
Tue Feb 17 00:45:52 PST 2015


Noel Grandin-2 wrote
>>...
>> Are you sure we can remove "pConv = DDE_FREECHANNEL;"? the test about if
>> equal or different from DDE_FREECHANNEL seems
>> used in the code.
>>
>> Indeed cppcheck returned this:
>> [basic/source/runtime/ddectrl.cxx:136]: (style) Variable 'pConv' is
>> assigned a value that is never used.
>> but it seems a false positive since pConv is a pointer on a specific
>> element of aConvList
>>
> pConv is a local variable, so the code that was removed was a dead
> assignment.
> 
> However, now that you mention it, it is possible that the method in
> question should actually look like:
> 
>      123 SbError SbiDdeControl::Terminate( size_t nChannel )
>      124 {
>      125     if (!nChannel || nChannel > aConvList.size())
>      126     {
>      127         return SbERR_DDE_NO_CHANNEL;
>      128     }
>      129     DdeConnection* pConv = aConvList[nChannel-1];
>      130
>      131     if( pConv == DDE_FREECHANNEL )
>      132     {
>      133         return SbERR_DDE_NO_CHANNEL;
>      134     }
>      135     delete pConv;
>      136     aConvList[nChannel-1] = DDE_FREECHANNEL;  // <<<<<<<<<<<< fix
>      137
>      138     return 0L;
>      139 }
> ...

You're right! Since it's a local var, the assignment will be useless. Your
change must be the right fix.
I really should  think twice before posting the morning... :-)

Julien



--
View this message in context: http://nabble.documentfoundation.org/Re-About-last-cppcheck-fixes-tp4140364p4140382.html
Sent from the Dev mailing list archive at Nabble.com.


More information about the LibreOffice mailing list