[Libreoffice-commits] core.git: coverity#1399266 Uncaught exception

Stephan Bergmann sbergman at redhat.com
Tue Jan 24 10:25:21 UTC 2017


On 01/24/2017 10:10 AM, Caolán McNamara wrote:
> commit 06202a90d6857a66512e10fef771b36196fc2d03
> Author: Caolán McNamara <caolanm at redhat.com>
> Date:   Tue Jan 24 09:07:35 2017 +0000
>
>     coverity#1399266 Uncaught exception
>
>     Change-Id: I1066fda2258e6acbbbad23256f815975564e5e61
>
> diff --git a/o3tl/qa/cow_wrapper_clients.hxx b/o3tl/qa/cow_wrapper_clients.hxx
> index 138f496..7750b71 100644
> --- a/o3tl/qa/cow_wrapper_clients.hxx
> +++ b/o3tl/qa/cow_wrapper_clients.hxx
> @@ -22,6 +22,7 @@
>
>  #include "o3tl/cow_wrapper.hxx"
>  #include "cppunit/extensions/HelperMacros.h"
> +#include <assert.h>
>
>  /* Definition of Cow_Wrapper_Clients classes */
>
> @@ -153,15 +154,12 @@ struct BogusRefCountPolicy
>      static sal_uInt32 s_nEndOfScope;
>      typedef sal_uInt32 ref_count_t;
>      static void incrementCount( ref_count_t& rCount ) {
> -        if(s_bShouldIncrement)
> -        {
> -            ++rCount;
> -            s_bShouldIncrement = false;
> -        }
> -        else
> -            CPPUNIT_FAIL("Ref-counting policy incremented when it should not have.");
> +        assert(s_bShouldIncrement && "Ref-counting policy incremented when it should not have.");
> +        ++rCount;
> +        s_bShouldIncrement = false;
>      }
>      static bool decrementCount( ref_count_t& rCount ) {
> +        assert((s_nEndOfScope || s_bShouldDecrement) && "Ref-counting policy decremented when it should not have.");

should we take this as motivation to build CppunitTest_* code always as 
if --enable-assert-always-abort?

>          if(s_nEndOfScope)
>          {
>              --rCount;
> @@ -172,8 +170,6 @@ struct BogusRefCountPolicy
>              --rCount;
>              s_bShouldDecrement = false;
>          }
> -        else
> -            CPPUNIT_FAIL("Ref-counting policy decremented when it should not have.");
>          return rCount != 0;
>      }
>  };



More information about the LibreOffice mailing list