Date: prev next · Thread: first prev next last
2014 Archives by date, by thread · List index


On 08/04/2014 13:10, Caolán McNamara wrote:
On Sat, 2014-04-05 at 15:51 -0700, julien2412 wrote:
Hello,

Cppcheck reported this
svx/source/unodraw/unomod.cxx
492     multiCondition  style   Expression is always false because 'else if'
condition matches previous condition at line 460.

Remark: It's a new kind of cppcheck detection and there are quite a lot of
false positives (at least for LO) for the moment.

Here's the code:
     460         else if( aTypeName.startsWith( "TableShape" ) )
     461         {
     462             nType = OBJ_OLE2;
     463         }
...
     492         else if( aTypeName.startsWith( "TableShape" ) )
     493         {
     494             nType = OBJ_TABLE;
     495         }

see
http://opengrok.libreoffice.org/xref/core/svx/source/unodraw/unomod.cxx#460

Which one of this block is ok?
I rather think the second one is the correct one, seeing as
svx/source/unodraw/unopage.cxx maps TableShape to OBJ_TABLE as well.

At one point tables in impress/draw were embedded calc spreadsheets, and
now they are "real" SdrObject things to that would also make sense.

On the other hand that will change the current situation and I have no
idea what makes the code enter that method so definitely a make check
case at least :-)
I've just pushed the fix on master. "make check" on top level was ok.
Searching in git history during "make check", I found this commit from 2008:
http://cgit.freedesktop.org/libreoffice/core/commit/?id=5d20a47c3d50d0a88543b2355ec7340fc7455984
which references "OBJ_TABLE"
whereas OBJ_OLE2 was in 2001 (see http://cgit.freedesktop.org/libreoffice/core/commit/?id=e24bc241b69da6789351d9bf82eab5119f09c16c)

I submitted a gerrit review 4.2:
https://gerrit.libreoffice.org/8897

Julien

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.