On 02/01/2012 11:40 PM, julien2412 wrote:
Cppcheck reports this :
core/sw/source/core/fields/cellfml.cxx
970 StlMissingComparison style Missing bounds check for extra iterator
increment in loop.
Here are the lines :
961 // dann mal die Tabellenkoepfe raus:
962 for( SwSelBoxes::iterator it = rBoxes.begin(); it !=
rBoxes.end(); ++it )
963 {
964 pLine = it->second->GetUpper();
965 while( pLine->GetUpper() )
966 pLine = pLine->GetUpper()->GetUpper();
967
968 if( pTbl->IsHeadline( *pLine ) )
969 {
970 rBoxes.erase( it++ );
971 --it;
972 }
973 }
Is it safe/ok ?
No, if the erased element was the only element in the sequence.
patch proposed
http://nabble.documentfoundation.org/file/n3708331/sw_patch.txt sw_patch.txt
The patch solves that, but I can offer a number of remarks:
* I would not replace the for loop with a while one, it unnecessarily
makes the code longer, with the general additional minor drawback of
enlarging the scope of the index variable. I also would not extract
aEnd; it makes the code longer and requires a tiny additional mental
step to ascertain oneself that it is indeed not invalidated by the loop
body.
* You accidentally changed the indentation of the loop body.
* Hungarian notation is ugly, esp. for trivialities like loop index
variables.
* "Dann mal die Tabellenkoepfe raus" means "remove the table headers."
Stephan
Context
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.