Hi Julien
On 2015-02-17 08:32 AM, Julien Nabet wrote:
Hello Noel,
I noticed these lines in last patch about cppcheck fixes:
diff --git a/basic/source/runtime/ddectrl.cxx b/basic/source/runtime/ddectrl.cxx
index 2557c9e..232008a 100644
--- a/basic/source/runtime/ddectrl.cxx
<http://cgit.freedesktop.org/libreoffice/core/tree/basic/source/runtime/ddectrl.cxx?id=a30e2cb912c6bae240ced35a392151e34090665b>
+++ b/basic/source/runtime/ddectrl.cxx
<http://cgit.freedesktop.org/libreoffice/core/tree/basic/source/runtime/ddectrl.cxx?id=a8e6f0bea0e8bc028ee64d0b4d9046e52de94eda>
@@ -133,7 +133,6 @@ SbError SbiDdeControl::Terminate( size_t nChannel )
return SbERR_DDE_NO_CHANNEL;
}
delete pConv;
- pConv = DDE_FREECHANNEL;
return 0L;
}
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 }
CC'ing the list in case anyone knows better.
Regards, Noel.
_______________________________________________
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice