Fishy assignment in editdoc (editeng) ?

Malte Timmermann malte_timmermann at gmx.com
Mon May 27 07:48:39 UTC 2019


For editdoc.cxx:

== op compares the individual members of the font if the impl pointer is
not equal. If all members are the same, the strange assignment makes
sure that both also point to the same internal instance of the font. If
you want to avoid that strange assignment, you would need to check in
every if statement above whether or not the new value differs from the
old value before making an assignment.

Best regards,
Malte.


On 26.05.2019 21:24, julien2412 wrote:
> Hello,
>
> Taking a look to the new reports generated by Cppcheck, I noticed
> "duplicateConditionalAssign" and specifically this code:
>     2028     // If comparing the entire font, or if checking before each
> alteration
>     2029     // whether the value changes, remains relatively the same thing.
>     2030     // So possible one MakeUniqFont more in the font, but as a
> result a quicker
>     2031     // abortion of the query, or one must each time check bChanged.
>     2032     if ( rFont == aPrevFont  )
>     2033         rFont = aPrevFont;  // => The same ImpPointer for
> IsSameInstance
>
> See
> https://opengrok.libreoffice.org/xref/core/editeng/source/editeng/editdoc.cxx?r=40d25921#2028
>
> Another similar place:
> xmlsecurity/source/xmlsec/nss/securityenvironment_nssimpl.cxx
>      800         if( xcert == nullptr ) {
>      801             xcert = nullptr ;  <-- whereas in other parts of the
> same file, we see a throw instruction
>      802         } else {
>
> Any thoughts?
>
> Julien
>
>
>
>
> --
> Sent from: http://document-foundation-mail-archive.969070.n3.nabble.com/Dev-f1639786.html
> _______________________________________________
> LibreOffice mailing list
> LibreOffice at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/libreoffice


More information about the LibreOffice mailing list