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.
Context
- Re: About last cppcheck fixes · Noel Grandin
Privacy Policy |
Impressum (Legal Info) |
Copyright information: Unless otherwise specified, all text and images
on this website are licensed under the
Creative Commons Attribution-Share Alike 3.0 License.
This does not include the source code of LibreOffice, which is
licensed under the Mozilla Public License (
MPLv2).
"LibreOffice" and "The Document Foundation" are
registered trademarks of their corresponding registered owners or are
in actual use as trademarks in one or more countries. Their respective
logos and icons are also subject to international copyright laws. Use
thereof is explained in our
trademark policy.