Hello Jim,

On Wed, Aug 04, 2021 at 08:09:11AM -0400, Jim Jagielski wrote:

> > On Aug 4, 2021, at 7:54 AM, Arrigo Marchiori <ard...@yahoo.it.INVALID> 
> > wrote:
> > 
> > Hello Jim,
> > 
> > On Wed, Aug 04, 2021 at 07:39:14AM -0400, Jim Jagielski wrote:
> > 
> >> Can you apply the below to your catalina branch build and see how it works?
> >> 
> >> diff --git a/main/comphelper/inc/comphelper/extract.hxx 
> >> b/main/comphelper/inc/comphelper/extract.hxx
> >> index dc67c5dc58..97c4d080f4 100644
> >> --- a/main/comphelper/inc/comphelper/extract.hxx
> >> +++ b/main/comphelper/inc/comphelper/extract.hxx
> >> @@ -131,16 +131,22 @@ inline sal_Bool SAL_CALL extractInterface(
> >> inline sal_Bool SAL_CALL any2bool( const ::com::sun::star::uno::Any & rAny 
> >> )
> >>    throw( ::com::sun::star::lang::IllegalArgumentException )
> >> {
> >> -  if (rAny.getValueTypeClass() == 
> >> ::com::sun::star::uno::TypeClass_BOOLEAN)
> >> +  bool bValue;
> >> +  sal_Bool sBValue;
> >> +  if ( rAny >>= bValue )
> >>    {
> >> -          return *(sal_Bool *)rAny.getValue();
> >> +          return *(sal_Bool *)bValue;     // Why not just 
> >> (sal_Bool)bValue ?
> > 
> > Are you sure about returning "*(sal_Bool *)bValue"? Are we not
> > treating bValue as a pointer here, while it is a bool?
> > To me it looks like returning either *0 or *1...
> > 
> 
> Well, 2 things:
> 
>   1. As you can see, the format is the exact that we've had all along
>   2. We cast as a pointer to a sal_Bool and then get the contents of the 
> pointer (ie: re return the deref of the pointer, not the pointer

Yes, but in your patch we are substituting a call to rAny.getValue(),
that returns `const void *` with `bValue` that is `bool`.
http://opengrok.openoffice.org/xref/aoo41x/main/cppu/inc/com/sun/star/uno/Any.h?r=24f6443d#163

For this reason IMHO the cast makes sense the first time and not the
second...

I'd rather do:

  return *(sal_Bool *)&bValue;
                      ^
> Why we do that (cast as a pointer and then deref) is curious, hence the 
> comment

I totally agree on this. It looks like type punning.

Best regards,
-- 
Arrigo

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@openoffice.apache.org
For additional commands, e-mail: dev-h...@openoffice.apache.org

Reply via email to