You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@openoffice.apache.org by Arrigo Marchiori <ar...@yahoo.it.INVALID> on 2021/07/27 20:21:31 UTC

Re: [OS/2 and macOS] saving ODS with chart

Hello All,

resurrecting an old thread.

On Thu, May 27, 2021 at 02:19:44PM -0000, Yuri Dario wrote:

> Hi,
> 
> > i can build AOO 4.2.x without problems with gcc 6.3 which is in Debian 9
> > I had problems to build it at Debian 10 with gcc 8.3.
> 
> here I have a 4.2 build done under Manjaro with gcc 9.2: saving a diagram 
> in ods format works fine, so it doesn't seems to be a compiler issue;
> 
> How is XML writing done with ODS files?

It's... complicated ;-)

I tried to dig deeper into this problem, as I could reproduce it with
the "catalina" branch on our Mac Mini.


Executive Summary (TL;DR ;-)
============================
A boolean setting is not recognized as a boolean. An exception is
thrown when accessing it. The exception is swallowed and the XML
files' contents are not written.


Details
=======
Method XMLFilter::impl_Export() in file
main/chart2/source/model/filter/XMLFilter.cxx:599 [1] has the
responsibility to output the XML files that describe the chart. It
sets some common options (beans::XPropertySet xInfoSet), and appends
them to uno::Sequence aFilterProperties. This sequence, together with
other pieces of information, is passed to the three invocations of
method XMLFilter::impl_ExportStream(), that starts at line 754.
Each invocation should give the contents of one XML file.
But in fact they do nothing.

Each invocation of method XMLFilter::impl_ExportStream() gets up to
line:

810:  xExporter->setSourceDocument( m_xSourceDoc );

This method raises an exception, that is caught below at line 820. The
return code "nWarning" is never set to anything but zero, therefore
the method returns (line 824) having failed its task, but reporting
success.

The question is: why does the above method setSourceDocument() throw
an exception? Let's look into it. I am not sure it is called directly
due to inheritance and virtual methods, but in the end it is [2]
SvXMLExport::setSourceDocument() in file
xmloff/source/core/xmlexp.cxx:676

The exception is thrown at a seemingly harmless line:

703:  if (::cppu::any2bool(aAny))

because for some reason, that "aAny" value, returned by method
beans::XPropertySetInfo::getPropertyValue(), is not a bool, and
function any2bool() throws because it cannot decode it.

But that property _was_ set as a bool by method
XMLFilter::impl_Export(), in file
main/chart2/source/model/filter/XMLFilter.cxx, at the beginning of
this explanation:

691:  xInfoSet->setPropertyValue( sUsePrettyPrinting, uno::makeAny( bUsePrettyPrinting ) );

References:

 1: https://github.com/apache/openoffice/blob/f1593045b154fade3a67d5f1771054eccc807e3f/main/chart2/source/model/filter/XMLFilter.cxx#L599

 2: https://github.com/apache/openoffice/blob/f1593045b154fade3a67d5f1771054eccc807e3f/main/xmloff/source/core/xmlexp.cxx#L676


Questions and comments
======================
Why does ::cppu::any2bool(aAny) not recognize a value constructed as
uno::makeAny( bUsePrettyPrinting ) ?

Or is the beans::XPropertySet the culprit?

Both CXX files pointed above have not been touched for at least 8
years. Why are they failing now? And why are they failing on a
seemingly trivial issue like a boolean property?

Maybe AOO42X introduced some changes in the overall management of
properties, "Any" objects and the like, that could have more or less
inadvertently solved this issue? Has anyone reproduced the problem
with AOO42X or trunk?

I would tend to blame the overall system because of the loads of
warnings that are emitted by clang 12 when it compiles AOO41X.

I don't know if it's worth the effort to further look into this, or
instead, just leave AOO41X working with older compilers and move
forward with AOO42X.

Comments, questions, criticism are welcome!

Best regards,
-- 
Arrigo

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


Re: [OS/2 and macOS] saving ODS with chart

Posted by Jim Jagielski <ji...@jaguNET.com>.
Hmmm... this seems to indicate that it is something in the UNO code itself which may be the issue, and specifically about exception handling... possibly some weirdness in the assembly part.

That narrows things down... great work Arrigo!
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@openoffice.apache.org
For additional commands, e-mail: dev-help@openoffice.apache.org


Re: [OS/2 and macOS] saving ODS with chart

Posted by Arrigo Marchiori <ar...@yahoo.it.INVALID>.
Hello Jim,

On Thu, Aug 05, 2021 at 01:41:23PM -0400, Jim Jagielski wrote:

> Never mind that one: This one is the one: THX!
[...]

Compiling now.

Best regards,
-- 
Arrigo

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


Re: [OS/2 and macOS] saving ODS with chart

Posted by Matthias Seidel <ma...@hamburg.de>.
Hi,

Just FYI, Yuri confirmed that the fix works on OS/2:

https://bz.apache.org/ooo/show_bug.cgi?id=128427#c6

Thanks again, Jim!

Regards,

   Matthias

Am 27.08.21 um 16:54 schrieb Matthias Seidel:
> Hi Jim, Arrigo,
>
> Am 27.08.21 um 11:24 schrieb Arrigo Marchiori:
>> Hello Jim, All,
>>
>> On Thu, Aug 26, 2021 at 06:08:48PM +0200, Arrigo Marchiori wrote:
>>
>>> Hello All,
>>>
>>> On Thu, Aug 26, 2021 at 04:34:02PM +0200, Matthias Seidel wrote:
>>>
>>>> Hi Jim,
>>>>
>>>> Arrigo wrote that "it still does not work, unfortunately"
>>> Yes! Did I miss anything?
>> I did miss it! I merged AOO41X into catalina and it works!! Well done,
>> Jim!
>>
>> I must have done some mistakes when merging your changes during your
>> development. But AOO41X seems to be good after your commits.
> That's indeed good news!
>
> So it was just a misunderstanding and we are done on this behalf.
>
>>>> Did you build Dev3 with a newer clang?
>>>>
>>>> @Yuri: Can you try to build for OS/2 with the latest AOO41X?
>>> +1
>> I am eager to hear if OS/2 is also working now!
> Yes, let's wait for Yuri to build it on OS/2. Their last release was for
> 4.1.8.
>
> Regards,
>
>    Matthias
>
>> Best regards.
>>
>>>> Am 26.08.21 um 16:27 schrieb Jim Jagielski:
>>>>> I believe the fix, which is universal, is already folded into the repos
>>>>>
>>>>>> On Aug 25, 2021, at 5:43 PM, Matthias Seidel <ma...@hamburg.de> wrote:
>>>>>>
>>>>>> Hi all,
>>>>>>
>>>>>> Am 06.08.21 um 12:26 schrieb Arrigo Marchiori:
>>>>>>> Hello Jim, All,
>>>>>>>
>>>>>>>
>>>>>>> On Thu, Aug 05, 2021 at 01:41:23PM -0400, Jim Jagielski wrote:
>>>>>>>
>>>>>>>> Never mind that one: This one is the one: THX!
>>>>>>> it still does not work, unfortunately. Quoting the rest for
>>>>>>> completeness.
>>>>>> Any ideas?
>>>>>>
>>>>>> A fix would be great for OS/2.
>>>>>>
>>>>>> Regards,
>>>>>>
>>>>>>    Matthias
>>>>>>
>>>>>>>> diff --git a/main/comphelper/inc/comphelper/extract.hxx b/main/comphelper/inc/comphelper/extract.hxx
>>>>>>>> index dc67c5dc58..fc75fa9cb9 100644
>>>>>>>> --- a/main/comphelper/inc/comphelper/extract.hxx
>>>>>>>> +++ b/main/comphelper/inc/comphelper/extract.hxx
>>>>>>>> @@ -131,9 +131,10 @@ 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)
>>>>>>>> +	sal_Bool sValue;
>>>>>>>> +	if ( rAny >>= sValue)
>>>>>>>> 	{
>>>>>>>> -		return *(sal_Bool *)rAny.getValue();
>>>>>>>> +		return sValue;
>>>>>>>> 	}
>>>>>>>> 	else
>>>>>>>> 	{
>>>>>>>> diff --git a/main/cppu/inc/com/sun/star/uno/Any.hxx b/main/cppu/inc/com/sun/star/uno/Any.hxx
>>>>>>>> index e1d125be82..2a38598efa 100644
>>>>>>>> --- a/main/cppu/inc/com/sun/star/uno/Any.hxx
>>>>>>>> +++ b/main/cppu/inc/com/sun/star/uno/Any.hxx
>>>>>>>> @@ -251,9 +251,9 @@ inline sal_Bool SAL_CALL operator >>= ( Any const & rAny, bool & value )
>>>>>>>> 	{
>>>>>>>> 		value = *reinterpret_cast< sal_Bool const * >(
>>>>>>>>             &rAny.pReserved ) != sal_False;
>>>>>>>> -		return true;
>>>>>>>> +		return sal_True;
>>>>>>>> 	}
>>>>>>>> -	return false;
>>>>>>>> +	return sal_False;
>>>>>>>> }
>>>>>>>>
>>>>>>>> //______________________________________________________________________________
>>>>>>>> diff --git a/main/starmath/source/mathmlexport.cxx b/main/starmath/source/mathmlexport.cxx
>>>>>>>> index 3f36ff152d..00b301d0eb 100644
>>>>>>>> --- a/main/starmath/source/mathmlexport.cxx
>>>>>>>> +++ b/main/starmath/source/mathmlexport.cxx
>>>>>>>> @@ -169,9 +169,7 @@ sal_Bool SmXMLExportWrapper::Export(SfxMedium &rMedium)
>>>>>>>>     SvtSaveOptions aSaveOpt;
>>>>>>>>     OUString sUsePrettyPrinting(RTL_CONSTASCII_USTRINGPARAM("UsePrettyPrinting"));
>>>>>>>>     sal_Bool bUsePrettyPrinting( bFlat || aSaveOpt.IsPrettyPrinting() );
>>>>>>>> -    Any aAny;
>>>>>>>> -    aAny.setValue( &bUsePrettyPrinting, ::getBooleanCppuType() );
>>>>>>>> -    xInfoSet->setPropertyValue( sUsePrettyPrinting, aAny );
>>>>>>>> +    xInfoSet->setPropertyValue( sUsePrettyPrinting, uno::makeAny(bUsePrettyPrinting));
>>>>>>>>
>>>>>>>>     // Set base URI
>>>>>>>>     OUString sPropName( RTL_CONSTASCII_USTRINGPARAM("BaseURI") );
>>>>>>>> diff --git a/main/sw/source/filter/xml/wrtxml.cxx b/main/sw/source/filter/xml/wrtxml.cxx
>>>>>>>> index e288bfc006..7677f86ff1 100644
>>>>>>>> --- a/main/sw/source/filter/xml/wrtxml.cxx
>>>>>>>> +++ b/main/sw/source/filter/xml/wrtxml.cxx
>>>>>>>> @@ -207,8 +207,7 @@ pGraphicHelper = SvXMLGraphicHelper::Create( xStg,
>>>>>>>> 	SvtSaveOptions aSaveOpt;
>>>>>>>> 	OUString sUsePrettyPrinting(RTL_CONSTASCII_USTRINGPARAM("UsePrettyPrinting"));
>>>>>>>> 	sal_Bool bUsePrettyPrinting( aSaveOpt.IsPrettyPrinting() );
>>>>>>>> -	aAny.setValue( &bUsePrettyPrinting, ::getBooleanCppuType() );
>>>>>>>> -	xInfoSet->setPropertyValue( sUsePrettyPrinting, aAny );
>>>>>>>> +	xInfoSet->setPropertyValue( sUsePrettyPrinting, uno::makeAny(bUsePrettyPrinting));
>>>>>>>>
>>>>>>>>     // save show redline mode ...
>>>>>>>> 	OUString sShowChanges(RTL_CONSTASCII_USTRINGPARAM("ShowChanges"));
>>>>>>> Best regards,
>>> -- 
>>> Arrigo
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: dev-unsubscribe@openoffice.apache.org
>>> For additional commands, e-mail: dev-help@openoffice.apache.org
>>>


Re: [OS/2 and macOS] saving ODS with chart

Posted by Matthias Seidel <ma...@hamburg.de>.
Hi Jim, Arrigo,

Am 27.08.21 um 11:24 schrieb Arrigo Marchiori:
> Hello Jim, All,
>
> On Thu, Aug 26, 2021 at 06:08:48PM +0200, Arrigo Marchiori wrote:
>
>> Hello All,
>>
>> On Thu, Aug 26, 2021 at 04:34:02PM +0200, Matthias Seidel wrote:
>>
>>> Hi Jim,
>>>
>>> Arrigo wrote that "it still does not work, unfortunately"
>> Yes! Did I miss anything?
> I did miss it! I merged AOO41X into catalina and it works!! Well done,
> Jim!
>
> I must have done some mistakes when merging your changes during your
> development. But AOO41X seems to be good after your commits.

That's indeed good news!

So it was just a misunderstanding and we are done on this behalf.

>
>>> Did you build Dev3 with a newer clang?
>>>
>>> @Yuri: Can you try to build for OS/2 with the latest AOO41X?
>> +1
> I am eager to hear if OS/2 is also working now!

Yes, let's wait for Yuri to build it on OS/2. Their last release was for
4.1.8.

Regards,

   Matthias

>
> Best regards.
>
>>> Am 26.08.21 um 16:27 schrieb Jim Jagielski:
>>>> I believe the fix, which is universal, is already folded into the repos
>>>>
>>>>> On Aug 25, 2021, at 5:43 PM, Matthias Seidel <ma...@hamburg.de> wrote:
>>>>>
>>>>> Hi all,
>>>>>
>>>>> Am 06.08.21 um 12:26 schrieb Arrigo Marchiori:
>>>>>> Hello Jim, All,
>>>>>>
>>>>>>
>>>>>> On Thu, Aug 05, 2021 at 01:41:23PM -0400, Jim Jagielski wrote:
>>>>>>
>>>>>>> Never mind that one: This one is the one: THX!
>>>>>> it still does not work, unfortunately. Quoting the rest for
>>>>>> completeness.
>>>>> Any ideas?
>>>>>
>>>>> A fix would be great for OS/2.
>>>>>
>>>>> Regards,
>>>>>
>>>>>    Matthias
>>>>>
>>>>>>> diff --git a/main/comphelper/inc/comphelper/extract.hxx b/main/comphelper/inc/comphelper/extract.hxx
>>>>>>> index dc67c5dc58..fc75fa9cb9 100644
>>>>>>> --- a/main/comphelper/inc/comphelper/extract.hxx
>>>>>>> +++ b/main/comphelper/inc/comphelper/extract.hxx
>>>>>>> @@ -131,9 +131,10 @@ 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)
>>>>>>> +	sal_Bool sValue;
>>>>>>> +	if ( rAny >>= sValue)
>>>>>>> 	{
>>>>>>> -		return *(sal_Bool *)rAny.getValue();
>>>>>>> +		return sValue;
>>>>>>> 	}
>>>>>>> 	else
>>>>>>> 	{
>>>>>>> diff --git a/main/cppu/inc/com/sun/star/uno/Any.hxx b/main/cppu/inc/com/sun/star/uno/Any.hxx
>>>>>>> index e1d125be82..2a38598efa 100644
>>>>>>> --- a/main/cppu/inc/com/sun/star/uno/Any.hxx
>>>>>>> +++ b/main/cppu/inc/com/sun/star/uno/Any.hxx
>>>>>>> @@ -251,9 +251,9 @@ inline sal_Bool SAL_CALL operator >>= ( Any const & rAny, bool & value )
>>>>>>> 	{
>>>>>>> 		value = *reinterpret_cast< sal_Bool const * >(
>>>>>>>             &rAny.pReserved ) != sal_False;
>>>>>>> -		return true;
>>>>>>> +		return sal_True;
>>>>>>> 	}
>>>>>>> -	return false;
>>>>>>> +	return sal_False;
>>>>>>> }
>>>>>>>
>>>>>>> //______________________________________________________________________________
>>>>>>> diff --git a/main/starmath/source/mathmlexport.cxx b/main/starmath/source/mathmlexport.cxx
>>>>>>> index 3f36ff152d..00b301d0eb 100644
>>>>>>> --- a/main/starmath/source/mathmlexport.cxx
>>>>>>> +++ b/main/starmath/source/mathmlexport.cxx
>>>>>>> @@ -169,9 +169,7 @@ sal_Bool SmXMLExportWrapper::Export(SfxMedium &rMedium)
>>>>>>>     SvtSaveOptions aSaveOpt;
>>>>>>>     OUString sUsePrettyPrinting(RTL_CONSTASCII_USTRINGPARAM("UsePrettyPrinting"));
>>>>>>>     sal_Bool bUsePrettyPrinting( bFlat || aSaveOpt.IsPrettyPrinting() );
>>>>>>> -    Any aAny;
>>>>>>> -    aAny.setValue( &bUsePrettyPrinting, ::getBooleanCppuType() );
>>>>>>> -    xInfoSet->setPropertyValue( sUsePrettyPrinting, aAny );
>>>>>>> +    xInfoSet->setPropertyValue( sUsePrettyPrinting, uno::makeAny(bUsePrettyPrinting));
>>>>>>>
>>>>>>>     // Set base URI
>>>>>>>     OUString sPropName( RTL_CONSTASCII_USTRINGPARAM("BaseURI") );
>>>>>>> diff --git a/main/sw/source/filter/xml/wrtxml.cxx b/main/sw/source/filter/xml/wrtxml.cxx
>>>>>>> index e288bfc006..7677f86ff1 100644
>>>>>>> --- a/main/sw/source/filter/xml/wrtxml.cxx
>>>>>>> +++ b/main/sw/source/filter/xml/wrtxml.cxx
>>>>>>> @@ -207,8 +207,7 @@ pGraphicHelper = SvXMLGraphicHelper::Create( xStg,
>>>>>>> 	SvtSaveOptions aSaveOpt;
>>>>>>> 	OUString sUsePrettyPrinting(RTL_CONSTASCII_USTRINGPARAM("UsePrettyPrinting"));
>>>>>>> 	sal_Bool bUsePrettyPrinting( aSaveOpt.IsPrettyPrinting() );
>>>>>>> -	aAny.setValue( &bUsePrettyPrinting, ::getBooleanCppuType() );
>>>>>>> -	xInfoSet->setPropertyValue( sUsePrettyPrinting, aAny );
>>>>>>> +	xInfoSet->setPropertyValue( sUsePrettyPrinting, uno::makeAny(bUsePrettyPrinting));
>>>>>>>
>>>>>>>     // save show redline mode ...
>>>>>>> 	OUString sShowChanges(RTL_CONSTASCII_USTRINGPARAM("ShowChanges"));
>>>>>> Best regards,
>> -- 
>> Arrigo
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscribe@openoffice.apache.org
>> For additional commands, e-mail: dev-help@openoffice.apache.org
>>


Re: [OS/2 and macOS] saving ODS with chart

Posted by Arrigo Marchiori <ar...@yahoo.it.INVALID>.
Hello Jim, All,

On Thu, Aug 26, 2021 at 06:08:48PM +0200, Arrigo Marchiori wrote:

> Hello All,
> 
> On Thu, Aug 26, 2021 at 04:34:02PM +0200, Matthias Seidel wrote:
> 
> > Hi Jim,
> > 
> > Arrigo wrote that "it still does not work, unfortunately"
> 
> Yes! Did I miss anything?

I did miss it! I merged AOO41X into catalina and it works!! Well done,
Jim!

I must have done some mistakes when merging your changes during your
development. But AOO41X seems to be good after your commits.

> > Did you build Dev3 with a newer clang?
> > 
> > @Yuri: Can you try to build for OS/2 with the latest AOO41X?
> 
> +1

I am eager to hear if OS/2 is also working now!

Best regards.

> > Am 26.08.21 um 16:27 schrieb Jim Jagielski:
> > > I believe the fix, which is universal, is already folded into the repos
> > >
> > >> On Aug 25, 2021, at 5:43 PM, Matthias Seidel <ma...@hamburg.de> wrote:
> > >>
> > >> Hi all,
> > >>
> > >> Am 06.08.21 um 12:26 schrieb Arrigo Marchiori:
> > >>> Hello Jim, All,
> > >>>
> > >>>
> > >>> On Thu, Aug 05, 2021 at 01:41:23PM -0400, Jim Jagielski wrote:
> > >>>
> > >>>> Never mind that one: This one is the one: THX!
> > >>> it still does not work, unfortunately. Quoting the rest for
> > >>> completeness.
> > >> Any ideas?
> > >>
> > >> A fix would be great for OS/2.
> > >>
> > >> Regards,
> > >>
> > >>    Matthias
> > >>
> > >>>> diff --git a/main/comphelper/inc/comphelper/extract.hxx b/main/comphelper/inc/comphelper/extract.hxx
> > >>>> index dc67c5dc58..fc75fa9cb9 100644
> > >>>> --- a/main/comphelper/inc/comphelper/extract.hxx
> > >>>> +++ b/main/comphelper/inc/comphelper/extract.hxx
> > >>>> @@ -131,9 +131,10 @@ 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)
> > >>>> +	sal_Bool sValue;
> > >>>> +	if ( rAny >>= sValue)
> > >>>> 	{
> > >>>> -		return *(sal_Bool *)rAny.getValue();
> > >>>> +		return sValue;
> > >>>> 	}
> > >>>> 	else
> > >>>> 	{
> > >>>> diff --git a/main/cppu/inc/com/sun/star/uno/Any.hxx b/main/cppu/inc/com/sun/star/uno/Any.hxx
> > >>>> index e1d125be82..2a38598efa 100644
> > >>>> --- a/main/cppu/inc/com/sun/star/uno/Any.hxx
> > >>>> +++ b/main/cppu/inc/com/sun/star/uno/Any.hxx
> > >>>> @@ -251,9 +251,9 @@ inline sal_Bool SAL_CALL operator >>= ( Any const & rAny, bool & value )
> > >>>> 	{
> > >>>> 		value = *reinterpret_cast< sal_Bool const * >(
> > >>>>             &rAny.pReserved ) != sal_False;
> > >>>> -		return true;
> > >>>> +		return sal_True;
> > >>>> 	}
> > >>>> -	return false;
> > >>>> +	return sal_False;
> > >>>> }
> > >>>>
> > >>>> //______________________________________________________________________________
> > >>>> diff --git a/main/starmath/source/mathmlexport.cxx b/main/starmath/source/mathmlexport.cxx
> > >>>> index 3f36ff152d..00b301d0eb 100644
> > >>>> --- a/main/starmath/source/mathmlexport.cxx
> > >>>> +++ b/main/starmath/source/mathmlexport.cxx
> > >>>> @@ -169,9 +169,7 @@ sal_Bool SmXMLExportWrapper::Export(SfxMedium &rMedium)
> > >>>>     SvtSaveOptions aSaveOpt;
> > >>>>     OUString sUsePrettyPrinting(RTL_CONSTASCII_USTRINGPARAM("UsePrettyPrinting"));
> > >>>>     sal_Bool bUsePrettyPrinting( bFlat || aSaveOpt.IsPrettyPrinting() );
> > >>>> -    Any aAny;
> > >>>> -    aAny.setValue( &bUsePrettyPrinting, ::getBooleanCppuType() );
> > >>>> -    xInfoSet->setPropertyValue( sUsePrettyPrinting, aAny );
> > >>>> +    xInfoSet->setPropertyValue( sUsePrettyPrinting, uno::makeAny(bUsePrettyPrinting));
> > >>>>
> > >>>>     // Set base URI
> > >>>>     OUString sPropName( RTL_CONSTASCII_USTRINGPARAM("BaseURI") );
> > >>>> diff --git a/main/sw/source/filter/xml/wrtxml.cxx b/main/sw/source/filter/xml/wrtxml.cxx
> > >>>> index e288bfc006..7677f86ff1 100644
> > >>>> --- a/main/sw/source/filter/xml/wrtxml.cxx
> > >>>> +++ b/main/sw/source/filter/xml/wrtxml.cxx
> > >>>> @@ -207,8 +207,7 @@ pGraphicHelper = SvXMLGraphicHelper::Create( xStg,
> > >>>> 	SvtSaveOptions aSaveOpt;
> > >>>> 	OUString sUsePrettyPrinting(RTL_CONSTASCII_USTRINGPARAM("UsePrettyPrinting"));
> > >>>> 	sal_Bool bUsePrettyPrinting( aSaveOpt.IsPrettyPrinting() );
> > >>>> -	aAny.setValue( &bUsePrettyPrinting, ::getBooleanCppuType() );
> > >>>> -	xInfoSet->setPropertyValue( sUsePrettyPrinting, aAny );
> > >>>> +	xInfoSet->setPropertyValue( sUsePrettyPrinting, uno::makeAny(bUsePrettyPrinting));
> > >>>>
> > >>>>     // save show redline mode ...
> > >>>> 	OUString sShowChanges(RTL_CONSTASCII_USTRINGPARAM("ShowChanges"));
> > >>> Best regards,
> 
> -- 
> Arrigo
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@openoffice.apache.org
> For additional commands, e-mail: dev-help@openoffice.apache.org
> 

-- 
Arrigo

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


Re: [OS/2 and macOS] saving ODS with chart

Posted by Arrigo Marchiori <ar...@yahoo.it.INVALID>.
Hello All,

On Thu, Aug 26, 2021 at 04:34:02PM +0200, Matthias Seidel wrote:

> Hi Jim,
> 
> Arrigo wrote that "it still does not work, unfortunately"

Yes! Did I miss anything?

> Did you build Dev3 with a newer clang?
> 
> @Yuri: Can you try to build for OS/2 with the latest AOO41X?

+1

> Am 26.08.21 um 16:27 schrieb Jim Jagielski:
> > I believe the fix, which is universal, is already folded into the repos
> >
> >> On Aug 25, 2021, at 5:43 PM, Matthias Seidel <ma...@hamburg.de> wrote:
> >>
> >> Hi all,
> >>
> >> Am 06.08.21 um 12:26 schrieb Arrigo Marchiori:
> >>> Hello Jim, All,
> >>>
> >>>
> >>> On Thu, Aug 05, 2021 at 01:41:23PM -0400, Jim Jagielski wrote:
> >>>
> >>>> Never mind that one: This one is the one: THX!
> >>> it still does not work, unfortunately. Quoting the rest for
> >>> completeness.
> >> Any ideas?
> >>
> >> A fix would be great for OS/2.
> >>
> >> Regards,
> >>
> >>    Matthias
> >>
> >>>> diff --git a/main/comphelper/inc/comphelper/extract.hxx b/main/comphelper/inc/comphelper/extract.hxx
> >>>> index dc67c5dc58..fc75fa9cb9 100644
> >>>> --- a/main/comphelper/inc/comphelper/extract.hxx
> >>>> +++ b/main/comphelper/inc/comphelper/extract.hxx
> >>>> @@ -131,9 +131,10 @@ 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)
> >>>> +	sal_Bool sValue;
> >>>> +	if ( rAny >>= sValue)
> >>>> 	{
> >>>> -		return *(sal_Bool *)rAny.getValue();
> >>>> +		return sValue;
> >>>> 	}
> >>>> 	else
> >>>> 	{
> >>>> diff --git a/main/cppu/inc/com/sun/star/uno/Any.hxx b/main/cppu/inc/com/sun/star/uno/Any.hxx
> >>>> index e1d125be82..2a38598efa 100644
> >>>> --- a/main/cppu/inc/com/sun/star/uno/Any.hxx
> >>>> +++ b/main/cppu/inc/com/sun/star/uno/Any.hxx
> >>>> @@ -251,9 +251,9 @@ inline sal_Bool SAL_CALL operator >>= ( Any const & rAny, bool & value )
> >>>> 	{
> >>>> 		value = *reinterpret_cast< sal_Bool const * >(
> >>>>             &rAny.pReserved ) != sal_False;
> >>>> -		return true;
> >>>> +		return sal_True;
> >>>> 	}
> >>>> -	return false;
> >>>> +	return sal_False;
> >>>> }
> >>>>
> >>>> //______________________________________________________________________________
> >>>> diff --git a/main/starmath/source/mathmlexport.cxx b/main/starmath/source/mathmlexport.cxx
> >>>> index 3f36ff152d..00b301d0eb 100644
> >>>> --- a/main/starmath/source/mathmlexport.cxx
> >>>> +++ b/main/starmath/source/mathmlexport.cxx
> >>>> @@ -169,9 +169,7 @@ sal_Bool SmXMLExportWrapper::Export(SfxMedium &rMedium)
> >>>>     SvtSaveOptions aSaveOpt;
> >>>>     OUString sUsePrettyPrinting(RTL_CONSTASCII_USTRINGPARAM("UsePrettyPrinting"));
> >>>>     sal_Bool bUsePrettyPrinting( bFlat || aSaveOpt.IsPrettyPrinting() );
> >>>> -    Any aAny;
> >>>> -    aAny.setValue( &bUsePrettyPrinting, ::getBooleanCppuType() );
> >>>> -    xInfoSet->setPropertyValue( sUsePrettyPrinting, aAny );
> >>>> +    xInfoSet->setPropertyValue( sUsePrettyPrinting, uno::makeAny(bUsePrettyPrinting));
> >>>>
> >>>>     // Set base URI
> >>>>     OUString sPropName( RTL_CONSTASCII_USTRINGPARAM("BaseURI") );
> >>>> diff --git a/main/sw/source/filter/xml/wrtxml.cxx b/main/sw/source/filter/xml/wrtxml.cxx
> >>>> index e288bfc006..7677f86ff1 100644
> >>>> --- a/main/sw/source/filter/xml/wrtxml.cxx
> >>>> +++ b/main/sw/source/filter/xml/wrtxml.cxx
> >>>> @@ -207,8 +207,7 @@ pGraphicHelper = SvXMLGraphicHelper::Create( xStg,
> >>>> 	SvtSaveOptions aSaveOpt;
> >>>> 	OUString sUsePrettyPrinting(RTL_CONSTASCII_USTRINGPARAM("UsePrettyPrinting"));
> >>>> 	sal_Bool bUsePrettyPrinting( aSaveOpt.IsPrettyPrinting() );
> >>>> -	aAny.setValue( &bUsePrettyPrinting, ::getBooleanCppuType() );
> >>>> -	xInfoSet->setPropertyValue( sUsePrettyPrinting, aAny );
> >>>> +	xInfoSet->setPropertyValue( sUsePrettyPrinting, uno::makeAny(bUsePrettyPrinting));
> >>>>
> >>>>     // save show redline mode ...
> >>>> 	OUString sShowChanges(RTL_CONSTASCII_USTRINGPARAM("ShowChanges"));
> >>> Best regards,

-- 
Arrigo

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


Re: [OS/2 and macOS] saving ODS with chart

Posted by Matthias Seidel <ma...@hamburg.de>.
Hi Jim,

Arrigo wrote that "it still does not work, unfortunately"

Did you build Dev3 with a newer clang?

@Yuri: Can you try to build for OS/2 with the latest AOO41X?

Regards,

   Matthias

Am 26.08.21 um 16:27 schrieb Jim Jagielski:
> I believe the fix, which is universal, is already folded into the repos
>
>> On Aug 25, 2021, at 5:43 PM, Matthias Seidel <ma...@hamburg.de> wrote:
>>
>> Hi all,
>>
>> Am 06.08.21 um 12:26 schrieb Arrigo Marchiori:
>>> Hello Jim, All,
>>>
>>>
>>> On Thu, Aug 05, 2021 at 01:41:23PM -0400, Jim Jagielski wrote:
>>>
>>>> Never mind that one: This one is the one: THX!
>>> it still does not work, unfortunately. Quoting the rest for
>>> completeness.
>> Any ideas?
>>
>> A fix would be great for OS/2.
>>
>> Regards,
>>
>>    Matthias
>>
>>>> diff --git a/main/comphelper/inc/comphelper/extract.hxx b/main/comphelper/inc/comphelper/extract.hxx
>>>> index dc67c5dc58..fc75fa9cb9 100644
>>>> --- a/main/comphelper/inc/comphelper/extract.hxx
>>>> +++ b/main/comphelper/inc/comphelper/extract.hxx
>>>> @@ -131,9 +131,10 @@ 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)
>>>> +	sal_Bool sValue;
>>>> +	if ( rAny >>= sValue)
>>>> 	{
>>>> -		return *(sal_Bool *)rAny.getValue();
>>>> +		return sValue;
>>>> 	}
>>>> 	else
>>>> 	{
>>>> diff --git a/main/cppu/inc/com/sun/star/uno/Any.hxx b/main/cppu/inc/com/sun/star/uno/Any.hxx
>>>> index e1d125be82..2a38598efa 100644
>>>> --- a/main/cppu/inc/com/sun/star/uno/Any.hxx
>>>> +++ b/main/cppu/inc/com/sun/star/uno/Any.hxx
>>>> @@ -251,9 +251,9 @@ inline sal_Bool SAL_CALL operator >>= ( Any const & rAny, bool & value )
>>>> 	{
>>>> 		value = *reinterpret_cast< sal_Bool const * >(
>>>>             &rAny.pReserved ) != sal_False;
>>>> -		return true;
>>>> +		return sal_True;
>>>> 	}
>>>> -	return false;
>>>> +	return sal_False;
>>>> }
>>>>
>>>> //______________________________________________________________________________
>>>> diff --git a/main/starmath/source/mathmlexport.cxx b/main/starmath/source/mathmlexport.cxx
>>>> index 3f36ff152d..00b301d0eb 100644
>>>> --- a/main/starmath/source/mathmlexport.cxx
>>>> +++ b/main/starmath/source/mathmlexport.cxx
>>>> @@ -169,9 +169,7 @@ sal_Bool SmXMLExportWrapper::Export(SfxMedium &rMedium)
>>>>     SvtSaveOptions aSaveOpt;
>>>>     OUString sUsePrettyPrinting(RTL_CONSTASCII_USTRINGPARAM("UsePrettyPrinting"));
>>>>     sal_Bool bUsePrettyPrinting( bFlat || aSaveOpt.IsPrettyPrinting() );
>>>> -    Any aAny;
>>>> -    aAny.setValue( &bUsePrettyPrinting, ::getBooleanCppuType() );
>>>> -    xInfoSet->setPropertyValue( sUsePrettyPrinting, aAny );
>>>> +    xInfoSet->setPropertyValue( sUsePrettyPrinting, uno::makeAny(bUsePrettyPrinting));
>>>>
>>>>     // Set base URI
>>>>     OUString sPropName( RTL_CONSTASCII_USTRINGPARAM("BaseURI") );
>>>> diff --git a/main/sw/source/filter/xml/wrtxml.cxx b/main/sw/source/filter/xml/wrtxml.cxx
>>>> index e288bfc006..7677f86ff1 100644
>>>> --- a/main/sw/source/filter/xml/wrtxml.cxx
>>>> +++ b/main/sw/source/filter/xml/wrtxml.cxx
>>>> @@ -207,8 +207,7 @@ pGraphicHelper = SvXMLGraphicHelper::Create( xStg,
>>>> 	SvtSaveOptions aSaveOpt;
>>>> 	OUString sUsePrettyPrinting(RTL_CONSTASCII_USTRINGPARAM("UsePrettyPrinting"));
>>>> 	sal_Bool bUsePrettyPrinting( aSaveOpt.IsPrettyPrinting() );
>>>> -	aAny.setValue( &bUsePrettyPrinting, ::getBooleanCppuType() );
>>>> -	xInfoSet->setPropertyValue( sUsePrettyPrinting, aAny );
>>>> +	xInfoSet->setPropertyValue( sUsePrettyPrinting, uno::makeAny(bUsePrettyPrinting));
>>>>
>>>>     // save show redline mode ...
>>>> 	OUString sShowChanges(RTL_CONSTASCII_USTRINGPARAM("ShowChanges"));
>>> Best regards,
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@openoffice.apache.org
> For additional commands, e-mail: dev-help@openoffice.apache.org
>


Re: [OS/2 and macOS] saving ODS with chart

Posted by Jim Jagielski <ji...@jaguNET.com>.
I believe the fix, which is universal, is already folded into the repos

> On Aug 25, 2021, at 5:43 PM, Matthias Seidel <ma...@hamburg.de> wrote:
> 
> Hi all,
> 
> Am 06.08.21 um 12:26 schrieb Arrigo Marchiori:
>> Hello Jim, All,
>> 
>> 
>> On Thu, Aug 05, 2021 at 01:41:23PM -0400, Jim Jagielski wrote:
>> 
>>> Never mind that one: This one is the one: THX!
>> it still does not work, unfortunately. Quoting the rest for
>> completeness.
> 
> Any ideas?
> 
> A fix would be great for OS/2.
> 
> Regards,
> 
>    Matthias
> 
>> 
>>> diff --git a/main/comphelper/inc/comphelper/extract.hxx b/main/comphelper/inc/comphelper/extract.hxx
>>> index dc67c5dc58..fc75fa9cb9 100644
>>> --- a/main/comphelper/inc/comphelper/extract.hxx
>>> +++ b/main/comphelper/inc/comphelper/extract.hxx
>>> @@ -131,9 +131,10 @@ 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)
>>> +	sal_Bool sValue;
>>> +	if ( rAny >>= sValue)
>>> 	{
>>> -		return *(sal_Bool *)rAny.getValue();
>>> +		return sValue;
>>> 	}
>>> 	else
>>> 	{
>>> diff --git a/main/cppu/inc/com/sun/star/uno/Any.hxx b/main/cppu/inc/com/sun/star/uno/Any.hxx
>>> index e1d125be82..2a38598efa 100644
>>> --- a/main/cppu/inc/com/sun/star/uno/Any.hxx
>>> +++ b/main/cppu/inc/com/sun/star/uno/Any.hxx
>>> @@ -251,9 +251,9 @@ inline sal_Bool SAL_CALL operator >>= ( Any const & rAny, bool & value )
>>> 	{
>>> 		value = *reinterpret_cast< sal_Bool const * >(
>>>             &rAny.pReserved ) != sal_False;
>>> -		return true;
>>> +		return sal_True;
>>> 	}
>>> -	return false;
>>> +	return sal_False;
>>> }
>>> 
>>> //______________________________________________________________________________
>>> diff --git a/main/starmath/source/mathmlexport.cxx b/main/starmath/source/mathmlexport.cxx
>>> index 3f36ff152d..00b301d0eb 100644
>>> --- a/main/starmath/source/mathmlexport.cxx
>>> +++ b/main/starmath/source/mathmlexport.cxx
>>> @@ -169,9 +169,7 @@ sal_Bool SmXMLExportWrapper::Export(SfxMedium &rMedium)
>>>     SvtSaveOptions aSaveOpt;
>>>     OUString sUsePrettyPrinting(RTL_CONSTASCII_USTRINGPARAM("UsePrettyPrinting"));
>>>     sal_Bool bUsePrettyPrinting( bFlat || aSaveOpt.IsPrettyPrinting() );
>>> -    Any aAny;
>>> -    aAny.setValue( &bUsePrettyPrinting, ::getBooleanCppuType() );
>>> -    xInfoSet->setPropertyValue( sUsePrettyPrinting, aAny );
>>> +    xInfoSet->setPropertyValue( sUsePrettyPrinting, uno::makeAny(bUsePrettyPrinting));
>>> 
>>>     // Set base URI
>>>     OUString sPropName( RTL_CONSTASCII_USTRINGPARAM("BaseURI") );
>>> diff --git a/main/sw/source/filter/xml/wrtxml.cxx b/main/sw/source/filter/xml/wrtxml.cxx
>>> index e288bfc006..7677f86ff1 100644
>>> --- a/main/sw/source/filter/xml/wrtxml.cxx
>>> +++ b/main/sw/source/filter/xml/wrtxml.cxx
>>> @@ -207,8 +207,7 @@ pGraphicHelper = SvXMLGraphicHelper::Create( xStg,
>>> 	SvtSaveOptions aSaveOpt;
>>> 	OUString sUsePrettyPrinting(RTL_CONSTASCII_USTRINGPARAM("UsePrettyPrinting"));
>>> 	sal_Bool bUsePrettyPrinting( aSaveOpt.IsPrettyPrinting() );
>>> -	aAny.setValue( &bUsePrettyPrinting, ::getBooleanCppuType() );
>>> -	xInfoSet->setPropertyValue( sUsePrettyPrinting, aAny );
>>> +	xInfoSet->setPropertyValue( sUsePrettyPrinting, uno::makeAny(bUsePrettyPrinting));
>>> 
>>>     // save show redline mode ...
>>> 	OUString sShowChanges(RTL_CONSTASCII_USTRINGPARAM("ShowChanges"));
>> Best regards,
> 


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


Re: [OS/2 and macOS] saving ODS with chart

Posted by Matthias Seidel <ma...@hamburg.de>.
Hi all,

Am 06.08.21 um 12:26 schrieb Arrigo Marchiori:
> Hello Jim, All,
>
>
> On Thu, Aug 05, 2021 at 01:41:23PM -0400, Jim Jagielski wrote:
>
>> Never mind that one: This one is the one: THX!
> it still does not work, unfortunately. Quoting the rest for
> completeness.

Any ideas?

A fix would be great for OS/2.

Regards,

   Matthias

>
>> diff --git a/main/comphelper/inc/comphelper/extract.hxx b/main/comphelper/inc/comphelper/extract.hxx
>> index dc67c5dc58..fc75fa9cb9 100644
>> --- a/main/comphelper/inc/comphelper/extract.hxx
>> +++ b/main/comphelper/inc/comphelper/extract.hxx
>> @@ -131,9 +131,10 @@ 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)
>> +	sal_Bool sValue;
>> +	if ( rAny >>= sValue)
>>  	{
>> -		return *(sal_Bool *)rAny.getValue();
>> +		return sValue;
>>  	}
>>  	else
>>  	{
>> diff --git a/main/cppu/inc/com/sun/star/uno/Any.hxx b/main/cppu/inc/com/sun/star/uno/Any.hxx
>> index e1d125be82..2a38598efa 100644
>> --- a/main/cppu/inc/com/sun/star/uno/Any.hxx
>> +++ b/main/cppu/inc/com/sun/star/uno/Any.hxx
>> @@ -251,9 +251,9 @@ inline sal_Bool SAL_CALL operator >>= ( Any const & rAny, bool & value )
>>  	{
>>  		value = *reinterpret_cast< sal_Bool const * >(
>>              &rAny.pReserved ) != sal_False;
>> -		return true;
>> +		return sal_True;
>>  	}
>> -	return false;
>> +	return sal_False;
>>  }
>>  
>>  //______________________________________________________________________________
>> diff --git a/main/starmath/source/mathmlexport.cxx b/main/starmath/source/mathmlexport.cxx
>> index 3f36ff152d..00b301d0eb 100644
>> --- a/main/starmath/source/mathmlexport.cxx
>> +++ b/main/starmath/source/mathmlexport.cxx
>> @@ -169,9 +169,7 @@ sal_Bool SmXMLExportWrapper::Export(SfxMedium &rMedium)
>>      SvtSaveOptions aSaveOpt;
>>      OUString sUsePrettyPrinting(RTL_CONSTASCII_USTRINGPARAM("UsePrettyPrinting"));
>>      sal_Bool bUsePrettyPrinting( bFlat || aSaveOpt.IsPrettyPrinting() );
>> -    Any aAny;
>> -    aAny.setValue( &bUsePrettyPrinting, ::getBooleanCppuType() );
>> -    xInfoSet->setPropertyValue( sUsePrettyPrinting, aAny );
>> +    xInfoSet->setPropertyValue( sUsePrettyPrinting, uno::makeAny(bUsePrettyPrinting));
>>  
>>      // Set base URI
>>      OUString sPropName( RTL_CONSTASCII_USTRINGPARAM("BaseURI") );
>> diff --git a/main/sw/source/filter/xml/wrtxml.cxx b/main/sw/source/filter/xml/wrtxml.cxx
>> index e288bfc006..7677f86ff1 100644
>> --- a/main/sw/source/filter/xml/wrtxml.cxx
>> +++ b/main/sw/source/filter/xml/wrtxml.cxx
>> @@ -207,8 +207,7 @@ pGraphicHelper = SvXMLGraphicHelper::Create( xStg,
>>  	SvtSaveOptions aSaveOpt;
>>  	OUString sUsePrettyPrinting(RTL_CONSTASCII_USTRINGPARAM("UsePrettyPrinting"));
>>  	sal_Bool bUsePrettyPrinting( aSaveOpt.IsPrettyPrinting() );
>> -	aAny.setValue( &bUsePrettyPrinting, ::getBooleanCppuType() );
>> -	xInfoSet->setPropertyValue( sUsePrettyPrinting, aAny );
>> +	xInfoSet->setPropertyValue( sUsePrettyPrinting, uno::makeAny(bUsePrettyPrinting));
>>  
>>      // save show redline mode ...
>>  	OUString sShowChanges(RTL_CONSTASCII_USTRINGPARAM("ShowChanges"));
> Best regards,


Re: [OS/2 and macOS] saving ODS with chart

Posted by Arrigo Marchiori <ar...@yahoo.it.INVALID>.
Hello Jim, All,


On Thu, Aug 05, 2021 at 01:41:23PM -0400, Jim Jagielski wrote:

> Never mind that one: This one is the one: THX!

it still does not work, unfortunately. Quoting the rest for
completeness.

> diff --git a/main/comphelper/inc/comphelper/extract.hxx b/main/comphelper/inc/comphelper/extract.hxx
> index dc67c5dc58..fc75fa9cb9 100644
> --- a/main/comphelper/inc/comphelper/extract.hxx
> +++ b/main/comphelper/inc/comphelper/extract.hxx
> @@ -131,9 +131,10 @@ 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)
> +	sal_Bool sValue;
> +	if ( rAny >>= sValue)
>  	{
> -		return *(sal_Bool *)rAny.getValue();
> +		return sValue;
>  	}
>  	else
>  	{
> diff --git a/main/cppu/inc/com/sun/star/uno/Any.hxx b/main/cppu/inc/com/sun/star/uno/Any.hxx
> index e1d125be82..2a38598efa 100644
> --- a/main/cppu/inc/com/sun/star/uno/Any.hxx
> +++ b/main/cppu/inc/com/sun/star/uno/Any.hxx
> @@ -251,9 +251,9 @@ inline sal_Bool SAL_CALL operator >>= ( Any const & rAny, bool & value )
>  	{
>  		value = *reinterpret_cast< sal_Bool const * >(
>              &rAny.pReserved ) != sal_False;
> -		return true;
> +		return sal_True;
>  	}
> -	return false;
> +	return sal_False;
>  }
>  
>  //______________________________________________________________________________
> diff --git a/main/starmath/source/mathmlexport.cxx b/main/starmath/source/mathmlexport.cxx
> index 3f36ff152d..00b301d0eb 100644
> --- a/main/starmath/source/mathmlexport.cxx
> +++ b/main/starmath/source/mathmlexport.cxx
> @@ -169,9 +169,7 @@ sal_Bool SmXMLExportWrapper::Export(SfxMedium &rMedium)
>      SvtSaveOptions aSaveOpt;
>      OUString sUsePrettyPrinting(RTL_CONSTASCII_USTRINGPARAM("UsePrettyPrinting"));
>      sal_Bool bUsePrettyPrinting( bFlat || aSaveOpt.IsPrettyPrinting() );
> -    Any aAny;
> -    aAny.setValue( &bUsePrettyPrinting, ::getBooleanCppuType() );
> -    xInfoSet->setPropertyValue( sUsePrettyPrinting, aAny );
> +    xInfoSet->setPropertyValue( sUsePrettyPrinting, uno::makeAny(bUsePrettyPrinting));
>  
>      // Set base URI
>      OUString sPropName( RTL_CONSTASCII_USTRINGPARAM("BaseURI") );
> diff --git a/main/sw/source/filter/xml/wrtxml.cxx b/main/sw/source/filter/xml/wrtxml.cxx
> index e288bfc006..7677f86ff1 100644
> --- a/main/sw/source/filter/xml/wrtxml.cxx
> +++ b/main/sw/source/filter/xml/wrtxml.cxx
> @@ -207,8 +207,7 @@ pGraphicHelper = SvXMLGraphicHelper::Create( xStg,
>  	SvtSaveOptions aSaveOpt;
>  	OUString sUsePrettyPrinting(RTL_CONSTASCII_USTRINGPARAM("UsePrettyPrinting"));
>  	sal_Bool bUsePrettyPrinting( aSaveOpt.IsPrettyPrinting() );
> -	aAny.setValue( &bUsePrettyPrinting, ::getBooleanCppuType() );
> -	xInfoSet->setPropertyValue( sUsePrettyPrinting, aAny );
> +	xInfoSet->setPropertyValue( sUsePrettyPrinting, uno::makeAny(bUsePrettyPrinting));
>  
>      // save show redline mode ...
>  	OUString sShowChanges(RTL_CONSTASCII_USTRINGPARAM("ShowChanges"));

Best regards,
-- 
Arrigo

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


Re: [OS/2 and macOS] saving ODS with chart

Posted by Jim Jagielski <ji...@jaguNET.com>.
Never mind that one: This one is the one: THX!

diff --git a/main/comphelper/inc/comphelper/extract.hxx b/main/comphelper/inc/comphelper/extract.hxx
index dc67c5dc58..fc75fa9cb9 100644
--- a/main/comphelper/inc/comphelper/extract.hxx
+++ b/main/comphelper/inc/comphelper/extract.hxx
@@ -131,9 +131,10 @@ 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)
+	sal_Bool sValue;
+	if ( rAny >>= sValue)
 	{
-		return *(sal_Bool *)rAny.getValue();
+		return sValue;
 	}
 	else
 	{
diff --git a/main/cppu/inc/com/sun/star/uno/Any.hxx b/main/cppu/inc/com/sun/star/uno/Any.hxx
index e1d125be82..2a38598efa 100644
--- a/main/cppu/inc/com/sun/star/uno/Any.hxx
+++ b/main/cppu/inc/com/sun/star/uno/Any.hxx
@@ -251,9 +251,9 @@ inline sal_Bool SAL_CALL operator >>= ( Any const & rAny, bool & value )
 	{
 		value = *reinterpret_cast< sal_Bool const * >(
             &rAny.pReserved ) != sal_False;
-		return true;
+		return sal_True;
 	}
-	return false;
+	return sal_False;
 }
 
 //______________________________________________________________________________
diff --git a/main/starmath/source/mathmlexport.cxx b/main/starmath/source/mathmlexport.cxx
index 3f36ff152d..00b301d0eb 100644
--- a/main/starmath/source/mathmlexport.cxx
+++ b/main/starmath/source/mathmlexport.cxx
@@ -169,9 +169,7 @@ sal_Bool SmXMLExportWrapper::Export(SfxMedium &rMedium)
     SvtSaveOptions aSaveOpt;
     OUString sUsePrettyPrinting(RTL_CONSTASCII_USTRINGPARAM("UsePrettyPrinting"));
     sal_Bool bUsePrettyPrinting( bFlat || aSaveOpt.IsPrettyPrinting() );
-    Any aAny;
-    aAny.setValue( &bUsePrettyPrinting, ::getBooleanCppuType() );
-    xInfoSet->setPropertyValue( sUsePrettyPrinting, aAny );
+    xInfoSet->setPropertyValue( sUsePrettyPrinting, uno::makeAny(bUsePrettyPrinting));
 
     // Set base URI
     OUString sPropName( RTL_CONSTASCII_USTRINGPARAM("BaseURI") );
diff --git a/main/sw/source/filter/xml/wrtxml.cxx b/main/sw/source/filter/xml/wrtxml.cxx
index e288bfc006..7677f86ff1 100644
--- a/main/sw/source/filter/xml/wrtxml.cxx
+++ b/main/sw/source/filter/xml/wrtxml.cxx
@@ -207,8 +207,7 @@ pGraphicHelper = SvXMLGraphicHelper::Create( xStg,
 	SvtSaveOptions aSaveOpt;
 	OUString sUsePrettyPrinting(RTL_CONSTASCII_USTRINGPARAM("UsePrettyPrinting"));
 	sal_Bool bUsePrettyPrinting( aSaveOpt.IsPrettyPrinting() );
-	aAny.setValue( &bUsePrettyPrinting, ::getBooleanCppuType() );
-	xInfoSet->setPropertyValue( sUsePrettyPrinting, aAny );
+	xInfoSet->setPropertyValue( sUsePrettyPrinting, uno::makeAny(bUsePrettyPrinting));
 
     // save show redline mode ...
 	OUString sShowChanges(RTL_CONSTASCII_USTRINGPARAM("ShowChanges"));



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


Re: [OS/2 and macOS] saving ODS with chart

Posted by Jim Jagielski <ji...@jaguNET.com>.
Can you try this:

diff --git a/main/comphelper/inc/comphelper/extract.hxx b/main/comphelper/inc/comphelper/extract.hxx
index dc67c5dc58..fc75fa9cb9 100644
--- a/main/comphelper/inc/comphelper/extract.hxx
+++ b/main/comphelper/inc/comphelper/extract.hxx
@@ -131,9 +131,10 @@ 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)
+	sal_Bool sValue;
+	if ( rAny >>= sValue)
 	{
-		return *(sal_Bool *)rAny.getValue();
+		return sValue;
 	}
 	else
 	{
diff --git a/main/cppu/inc/com/sun/star/uno/Any.hxx b/main/cppu/inc/com/sun/star/uno/Any.hxx
index e1d125be82..2a38598efa 100644
--- a/main/cppu/inc/com/sun/star/uno/Any.hxx
+++ b/main/cppu/inc/com/sun/star/uno/Any.hxx
@@ -251,9 +251,9 @@ inline sal_Bool SAL_CALL operator >>= ( Any const & rAny, bool & value )
 	{
 		value = *reinterpret_cast< sal_Bool const * >(
             &rAny.pReserved ) != sal_False;
-		return true;
+		return sal_True;
 	}
-	return false;
+	return sal_False;
 }
 
 //______________________________________________________________________________
diff --git a/main/xmloff/source/core/xmlexp.cxx b/main/xmloff/source/core/xmlexp.cxx
index 4a867ca64c..2b63c0f991 100644
--- a/main/xmloff/source/core/xmlexp.cxx
+++ b/main/xmloff/source/core/xmlexp.cxx
@@ -699,7 +699,7 @@ void SAL_CALL SvXMLExport::setSourceDocument( const uno::Reference< lang::XCompo
 			OUString sUsePrettyPrinting(RTL_CONSTASCII_USTRINGPARAM(XML_USEPRETTYPRINTING));
 			if (xPropertySetInfo->hasPropertyByName(sUsePrettyPrinting))
 			{
-				uno::Any aAny = mxExportInfo->getPropertyValue(sUsePrettyPrinting);
+				uno::Any aAny = mxExportInfo->getPropertyValue(bUsePrettyPrinting);
 				if (::cppu::any2bool(aAny))
 					mnExportFlags |= EXPORT_PRETTY;
 				else


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


Re: [OS/2 and macOS] saving ODS with chart

Posted by Jim Jagielski <ji...@jaguNET.com>.
diff --git a/main/comphelper/inc/comphelper/extract.hxx b/main/comphelper/inc/comphelper/extract.hxx
index dc67c5dc58..8ea41ec95f 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;
+	}
+	else if ( rAny >>= sBValue )
+	{
+		return sBValue;
 	}
 	else
 	{
 		sal_Int32 nValue = 0;
 		if (! (rAny >>= nValue))
 			throw ::com::sun::star::lang::IllegalArgumentException();
-		return nValue != 0;
+		return (sal_Bool)(nValue != 0);
 	}
 }
 


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


Re: [OS/2 and macOS] saving ODS with chart

Posted by Jim Jagielski <ji...@jaguNET.com>.

> On Aug 4, 2021, at 9:23 AM, Arrigo Marchiori <ar...@yahoo.it.INVALID> wrote:
> 
> 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 <ar...@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 <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.
> 

IMO, we should just return (sal_Bool) bValue


Re: [OS/2 and macOS] saving ODS with chart

Posted by Arrigo Marchiori <ar...@yahoo.it.INVALID>.
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 <ar...@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-unsubscribe@openoffice.apache.org
For additional commands, e-mail: dev-help@openoffice.apache.org


Re: [OS/2 and macOS] saving ODS with chart

Posted by Jim Jagielski <ji...@jaguNET.com>.

> On Aug 4, 2021, at 7:54 AM, Arrigo Marchiori <ar...@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

Why we do that (cast as a pointer and then deref) is curious, hence the comment

> Thank you in advance and best regards,
> -- 
> Arrigo
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@openoffice.apache.org <ma...@openoffice.apache.org>
> For additional commands, e-mail: dev-help@openoffice.apache.org <ma...@openoffice.apache.org>

Re: [OS/2 and macOS] saving ODS with chart

Posted by Arrigo Marchiori <ar...@yahoo.it.INVALID>.
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...

Thank you in advance and best regards,
-- 
Arrigo

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


Re: [OS/2 and macOS] saving ODS with chart

Posted by Jim Jagielski <ji...@jaguNET.com>.
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 ?
+	}
+	else if ( rAny >>= sBValue )
+	{
+		return sBValue;
 	}
 	else
 	{
 		sal_Int32 nValue = 0;
 		if (! (rAny >>= nValue))
 			throw ::com::sun::star::lang::IllegalArgumentException();
-		return nValue != 0;
+		return (sal_Bool)(nValue != 0);
 	}
 }
 


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


Re: [OS/2 and macOS] saving ODS with chart

Posted by Arrigo Marchiori <ar...@yahoo.it.INVALID>.
Hello Jim, All,

On Tue, Aug 03, 2021 at 12:42:47PM -0400, Jim Jagielski wrote:

> Wow. This is weird, but also kind of makes sense since it seems so very, very platform and SDK sensitive.
> 
> Someone remind me what the catalina branch is and how it relates to trunk and AOO42X, please :-)

Thank you for looking ito it!

catalina was branched from AOO41X.

If it has become stale, we can synchronize it with AOO41X with just a
`git merge upstream/AOO41X`.

But I do not think that AOO41X has changed much since, at least with
respect to the chart-related part.

> > On Jul 27, 2021, at 4:21 PM, Arrigo Marchiori <ar...@yahoo.it.INVALID> wrote:
> > 
> > Hello All,
> > 
> > resurrecting an old thread.
> > 
> > On Thu, May 27, 2021 at 02:19:44PM -0000, Yuri Dario wrote:
> > 
> >> Hi,
> >> 
> >>> i can build AOO 4.2.x without problems with gcc 6.3 which is in Debian 9
> >>> I had problems to build it at Debian 10 with gcc 8.3.
> >> 
> >> here I have a 4.2 build done under Manjaro with gcc 9.2: saving a diagram 
> >> in ods format works fine, so it doesn't seems to be a compiler issue;
> >> 
> >> How is XML writing done with ODS files?

[...]

-- 
Arrigo

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


Re: [OS/2 and macOS] saving ODS with chart

Posted by Jim Jagielski <ji...@jaguNET.com>.
It does... 

> On Aug 3, 2021, at 1:25 PM, Matthias Seidel <ma...@hamburg.de> wrote:
> 
> Hi Jim,
> 
> Am 03.08.21 um 19:21 schrieb Jim Jagielski:
>> Thanks... but that seems based on some older version of AOO41X... or am I missing something?
> 
> Yes, we had this problem with AOO41X. I don't know if it also occurs in
> AOO42X.
> 
>> 
>>> On Aug 3, 2021, at 1:06 PM, Matthias Seidel <ma...@hamburg.de> wrote:
>>> 
>>> Hi Jim,
>>> 
>>> Am 03.08.21 um 18:42 schrieb Jim Jagielski:
>>>> Wow. This is weird, but also kind of makes sense since it seems so very, very platform and SDK sensitive.
>>>> 
>>>> Someone remind me what the catalina branch is and how it relates to trunk and AOO42X, please :-)
>>> https://github.com/apache/openoffice/tree/catalina <https://github.com/apache/openoffice/tree/catalina>
>>>> 
>>>>> On Jul 27, 2021, at 4:21 PM, Arrigo Marchiori <ar...@yahoo.it.INVALID> wrote:
>>>>> 
>>>>> Hello All,
>>>>> 
>>>>> resurrecting an old thread.
>>>>> 
>>>>> On Thu, May 27, 2021 at 02:19:44PM -0000, Yuri Dario wrote:
>>>>> 
>>>>>> Hi,
>>>>>> 
>>>>>>> i can build AOO 4.2.x without problems with gcc 6.3 which is in Debian 9
>>>>>>> I had problems to build it at Debian 10 with gcc 8.3.
>>>>>> here I have a 4.2 build done under Manjaro with gcc 9.2: saving a diagram 
>>>>>> in ods format works fine, so it doesn't seems to be a compiler issue;
>>>>>> 
>>>>>> How is XML writing done with ODS files?
>>>>> It's... complicated ;-)
>>>>> 
>>>>> I tried to dig deeper into this problem, as I could reproduce it with
>>>>> the "catalina" branch on our Mac Mini.
>>>>> 
>>>>> 
>>>>> Executive Summary (TL;DR ;-)
>>>>> ============================
>>>>> A boolean setting is not recognized as a boolean. An exception is
>>>>> thrown when accessing it. The exception is swallowed and the XML
>>>>> files' contents are not written.
>>>>> 
>>>>> 
>>>>> Details
>>>>> =======
>>>>> Method XMLFilter::impl_Export() in file
>>>>> main/chart2/source/model/filter/XMLFilter.cxx:599 [1] has the
>>>>> responsibility to output the XML files that describe the chart. It
>>>>> sets some common options (beans::XPropertySet xInfoSet), and appends
>>>>> them to uno::Sequence aFilterProperties. This sequence, together with
>>>>> other pieces of information, is passed to the three invocations of
>>>>> method XMLFilter::impl_ExportStream(), that starts at line 754.
>>>>> Each invocation should give the contents of one XML file.
>>>>> But in fact they do nothing.
>>>>> 
>>>>> Each invocation of method XMLFilter::impl_ExportStream() gets up to
>>>>> line:
>>>>> 
>>>>> 810:  xExporter->setSourceDocument( m_xSourceDoc );
>>>>> 
>>>>> This method raises an exception, that is caught below at line 820. The
>>>>> return code "nWarning" is never set to anything but zero, therefore
>>>>> the method returns (line 824) having failed its task, but reporting
>>>>> success.
>>>>> 
>>>>> The question is: why does the above method setSourceDocument() throw
>>>>> an exception? Let's look into it. I am not sure it is called directly
>>>>> due to inheritance and virtual methods, but in the end it is [2]
>>>>> SvXMLExport::setSourceDocument() in file
>>>>> xmloff/source/core/xmlexp.cxx:676
>>>>> 
>>>>> The exception is thrown at a seemingly harmless line:
>>>>> 
>>>>> 703:  if (::cppu::any2bool(aAny))
>>>>> 
>>>>> because for some reason, that "aAny" value, returned by method
>>>>> beans::XPropertySetInfo::getPropertyValue(), is not a bool, and
>>>>> function any2bool() throws because it cannot decode it.
>>>>> 
>>>>> But that property _was_ set as a bool by method
>>>>> XMLFilter::impl_Export(), in file
>>>>> main/chart2/source/model/filter/XMLFilter.cxx, at the beginning of
>>>>> this explanation:
>>>>> 
>>>>> 691:  xInfoSet->setPropertyValue( sUsePrettyPrinting, uno::makeAny( bUsePrettyPrinting ) );
>>>>> 
>>>>> References:
>>>>> 
>>>>> 1: https://github.com/apache/openoffice/blob/f1593045b154fade3a67d5f1771054eccc807e3f/main/chart2/source/model/filter/XMLFilter.cxx#L599
>>>>> 
>>>>> 2: https://github.com/apache/openoffice/blob/f1593045b154fade3a67d5f1771054eccc807e3f/main/xmloff/source/core/xmlexp.cxx#L676
>>>>> 
>>>>> 
>>>>> Questions and comments
>>>>> ======================
>>>>> Why does ::cppu::any2bool(aAny) not recognize a value constructed as
>>>>> uno::makeAny( bUsePrettyPrinting ) ?
>>>>> 
>>>>> Or is the beans::XPropertySet the culprit?
>>>>> 
>>>>> Both CXX files pointed above have not been touched for at least 8
>>>>> years. Why are they failing now? And why are they failing on a
>>>>> seemingly trivial issue like a boolean property?
>>>>> 
>>>>> Maybe AOO42X introduced some changes in the overall management of
>>>>> properties, "Any" objects and the like, that could have more or less
>>>>> inadvertently solved this issue? Has anyone reproduced the problem
>>>>> with AOO42X or trunk?
>>>>> 
>>>>> I would tend to blame the overall system because of the loads of
>>>>> warnings that are emitted by clang 12 when it compiles AOO41X.
>>>>> 
>>>>> I don't know if it's worth the effort to further look into this, or
>>>>> instead, just leave AOO41X working with older compilers and move
>>>>> forward with AOO42X.
>>>>> 
>>>>> Comments, questions, criticism are welcome!
>>>>> 
>>>>> Best regards,
>>>>> -- 
>>>>> Arrigo
>>>>> 
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: dev-unsubscribe@openoffice.apache.org
>>>>> For additional commands, e-mail: dev-help@openoffice.apache.org
>>>>> 
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: dev-unsubscribe@openoffice.apache.org <ma...@openoffice.apache.org>
>>>> For additional commands, e-mail: dev-help@openoffice.apache.org <ma...@openoffice.apache.org>
> 


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


Re: [OS/2 and macOS] saving ODS with chart

Posted by Matthias Seidel <ma...@hamburg.de>.
Hi Jim,

Am 03.08.21 um 19:21 schrieb Jim Jagielski:
> Thanks... but that seems based on some older version of AOO41X... or am I missing something?

Yes, we had this problem with AOO41X. I don't know if it also occurs in
AOO42X.

>
>> On Aug 3, 2021, at 1:06 PM, Matthias Seidel <ma...@hamburg.de> wrote:
>>
>> Hi Jim,
>>
>> Am 03.08.21 um 18:42 schrieb Jim Jagielski:
>>> Wow. This is weird, but also kind of makes sense since it seems so very, very platform and SDK sensitive.
>>>
>>> Someone remind me what the catalina branch is and how it relates to trunk and AOO42X, please :-)
>> https://github.com/apache/openoffice/tree/catalina <https://github.com/apache/openoffice/tree/catalina>
>>>
>>>> On Jul 27, 2021, at 4:21 PM, Arrigo Marchiori <ar...@yahoo.it.INVALID> wrote:
>>>>
>>>> Hello All,
>>>>
>>>> resurrecting an old thread.
>>>>
>>>> On Thu, May 27, 2021 at 02:19:44PM -0000, Yuri Dario wrote:
>>>>
>>>>> Hi,
>>>>>
>>>>>> i can build AOO 4.2.x without problems with gcc 6.3 which is in Debian 9
>>>>>> I had problems to build it at Debian 10 with gcc 8.3.
>>>>> here I have a 4.2 build done under Manjaro with gcc 9.2: saving a diagram 
>>>>> in ods format works fine, so it doesn't seems to be a compiler issue;
>>>>>
>>>>> How is XML writing done with ODS files?
>>>> It's... complicated ;-)
>>>>
>>>> I tried to dig deeper into this problem, as I could reproduce it with
>>>> the "catalina" branch on our Mac Mini.
>>>>
>>>>
>>>> Executive Summary (TL;DR ;-)
>>>> ============================
>>>> A boolean setting is not recognized as a boolean. An exception is
>>>> thrown when accessing it. The exception is swallowed and the XML
>>>> files' contents are not written.
>>>>
>>>>
>>>> Details
>>>> =======
>>>> Method XMLFilter::impl_Export() in file
>>>> main/chart2/source/model/filter/XMLFilter.cxx:599 [1] has the
>>>> responsibility to output the XML files that describe the chart. It
>>>> sets some common options (beans::XPropertySet xInfoSet), and appends
>>>> them to uno::Sequence aFilterProperties. This sequence, together with
>>>> other pieces of information, is passed to the three invocations of
>>>> method XMLFilter::impl_ExportStream(), that starts at line 754.
>>>> Each invocation should give the contents of one XML file.
>>>> But in fact they do nothing.
>>>>
>>>> Each invocation of method XMLFilter::impl_ExportStream() gets up to
>>>> line:
>>>>
>>>> 810:  xExporter->setSourceDocument( m_xSourceDoc );
>>>>
>>>> This method raises an exception, that is caught below at line 820. The
>>>> return code "nWarning" is never set to anything but zero, therefore
>>>> the method returns (line 824) having failed its task, but reporting
>>>> success.
>>>>
>>>> The question is: why does the above method setSourceDocument() throw
>>>> an exception? Let's look into it. I am not sure it is called directly
>>>> due to inheritance and virtual methods, but in the end it is [2]
>>>> SvXMLExport::setSourceDocument() in file
>>>> xmloff/source/core/xmlexp.cxx:676
>>>>
>>>> The exception is thrown at a seemingly harmless line:
>>>>
>>>> 703:  if (::cppu::any2bool(aAny))
>>>>
>>>> because for some reason, that "aAny" value, returned by method
>>>> beans::XPropertySetInfo::getPropertyValue(), is not a bool, and
>>>> function any2bool() throws because it cannot decode it.
>>>>
>>>> But that property _was_ set as a bool by method
>>>> XMLFilter::impl_Export(), in file
>>>> main/chart2/source/model/filter/XMLFilter.cxx, at the beginning of
>>>> this explanation:
>>>>
>>>> 691:  xInfoSet->setPropertyValue( sUsePrettyPrinting, uno::makeAny( bUsePrettyPrinting ) );
>>>>
>>>> References:
>>>>
>>>> 1: https://github.com/apache/openoffice/blob/f1593045b154fade3a67d5f1771054eccc807e3f/main/chart2/source/model/filter/XMLFilter.cxx#L599
>>>>
>>>> 2: https://github.com/apache/openoffice/blob/f1593045b154fade3a67d5f1771054eccc807e3f/main/xmloff/source/core/xmlexp.cxx#L676
>>>>
>>>>
>>>> Questions and comments
>>>> ======================
>>>> Why does ::cppu::any2bool(aAny) not recognize a value constructed as
>>>> uno::makeAny( bUsePrettyPrinting ) ?
>>>>
>>>> Or is the beans::XPropertySet the culprit?
>>>>
>>>> Both CXX files pointed above have not been touched for at least 8
>>>> years. Why are they failing now? And why are they failing on a
>>>> seemingly trivial issue like a boolean property?
>>>>
>>>> Maybe AOO42X introduced some changes in the overall management of
>>>> properties, "Any" objects and the like, that could have more or less
>>>> inadvertently solved this issue? Has anyone reproduced the problem
>>>> with AOO42X or trunk?
>>>>
>>>> I would tend to blame the overall system because of the loads of
>>>> warnings that are emitted by clang 12 when it compiles AOO41X.
>>>>
>>>> I don't know if it's worth the effort to further look into this, or
>>>> instead, just leave AOO41X working with older compilers and move
>>>> forward with AOO42X.
>>>>
>>>> Comments, questions, criticism are welcome!
>>>>
>>>> Best regards,
>>>> -- 
>>>> Arrigo
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: dev-unsubscribe@openoffice.apache.org
>>>> For additional commands, e-mail: dev-help@openoffice.apache.org
>>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: dev-unsubscribe@openoffice.apache.org <ma...@openoffice.apache.org>
>>> For additional commands, e-mail: dev-help@openoffice.apache.org <ma...@openoffice.apache.org>


Re: [OS/2 and macOS] saving ODS with chart

Posted by Jim Jagielski <ji...@jaguNET.com>.
Thanks... but that seems based on some older version of AOO41X... or am I missing something?

> On Aug 3, 2021, at 1:06 PM, Matthias Seidel <ma...@hamburg.de> wrote:
> 
> Hi Jim,
> 
> Am 03.08.21 um 18:42 schrieb Jim Jagielski:
>> Wow. This is weird, but also kind of makes sense since it seems so very, very platform and SDK sensitive.
>> 
>> Someone remind me what the catalina branch is and how it relates to trunk and AOO42X, please :-)
> https://github.com/apache/openoffice/tree/catalina <https://github.com/apache/openoffice/tree/catalina>
>> 
>> 
>>> On Jul 27, 2021, at 4:21 PM, Arrigo Marchiori <ar...@yahoo.it.INVALID> wrote:
>>> 
>>> Hello All,
>>> 
>>> resurrecting an old thread.
>>> 
>>> On Thu, May 27, 2021 at 02:19:44PM -0000, Yuri Dario wrote:
>>> 
>>>> Hi,
>>>> 
>>>>> i can build AOO 4.2.x without problems with gcc 6.3 which is in Debian 9
>>>>> I had problems to build it at Debian 10 with gcc 8.3.
>>>> here I have a 4.2 build done under Manjaro with gcc 9.2: saving a diagram 
>>>> in ods format works fine, so it doesn't seems to be a compiler issue;
>>>> 
>>>> How is XML writing done with ODS files?
>>> It's... complicated ;-)
>>> 
>>> I tried to dig deeper into this problem, as I could reproduce it with
>>> the "catalina" branch on our Mac Mini.
>>> 
>>> 
>>> Executive Summary (TL;DR ;-)
>>> ============================
>>> A boolean setting is not recognized as a boolean. An exception is
>>> thrown when accessing it. The exception is swallowed and the XML
>>> files' contents are not written.
>>> 
>>> 
>>> Details
>>> =======
>>> Method XMLFilter::impl_Export() in file
>>> main/chart2/source/model/filter/XMLFilter.cxx:599 [1] has the
>>> responsibility to output the XML files that describe the chart. It
>>> sets some common options (beans::XPropertySet xInfoSet), and appends
>>> them to uno::Sequence aFilterProperties. This sequence, together with
>>> other pieces of information, is passed to the three invocations of
>>> method XMLFilter::impl_ExportStream(), that starts at line 754.
>>> Each invocation should give the contents of one XML file.
>>> But in fact they do nothing.
>>> 
>>> Each invocation of method XMLFilter::impl_ExportStream() gets up to
>>> line:
>>> 
>>> 810:  xExporter->setSourceDocument( m_xSourceDoc );
>>> 
>>> This method raises an exception, that is caught below at line 820. The
>>> return code "nWarning" is never set to anything but zero, therefore
>>> the method returns (line 824) having failed its task, but reporting
>>> success.
>>> 
>>> The question is: why does the above method setSourceDocument() throw
>>> an exception? Let's look into it. I am not sure it is called directly
>>> due to inheritance and virtual methods, but in the end it is [2]
>>> SvXMLExport::setSourceDocument() in file
>>> xmloff/source/core/xmlexp.cxx:676
>>> 
>>> The exception is thrown at a seemingly harmless line:
>>> 
>>> 703:  if (::cppu::any2bool(aAny))
>>> 
>>> because for some reason, that "aAny" value, returned by method
>>> beans::XPropertySetInfo::getPropertyValue(), is not a bool, and
>>> function any2bool() throws because it cannot decode it.
>>> 
>>> But that property _was_ set as a bool by method
>>> XMLFilter::impl_Export(), in file
>>> main/chart2/source/model/filter/XMLFilter.cxx, at the beginning of
>>> this explanation:
>>> 
>>> 691:  xInfoSet->setPropertyValue( sUsePrettyPrinting, uno::makeAny( bUsePrettyPrinting ) );
>>> 
>>> References:
>>> 
>>> 1: https://github.com/apache/openoffice/blob/f1593045b154fade3a67d5f1771054eccc807e3f/main/chart2/source/model/filter/XMLFilter.cxx#L599
>>> 
>>> 2: https://github.com/apache/openoffice/blob/f1593045b154fade3a67d5f1771054eccc807e3f/main/xmloff/source/core/xmlexp.cxx#L676
>>> 
>>> 
>>> Questions and comments
>>> ======================
>>> Why does ::cppu::any2bool(aAny) not recognize a value constructed as
>>> uno::makeAny( bUsePrettyPrinting ) ?
>>> 
>>> Or is the beans::XPropertySet the culprit?
>>> 
>>> Both CXX files pointed above have not been touched for at least 8
>>> years. Why are they failing now? And why are they failing on a
>>> seemingly trivial issue like a boolean property?
>>> 
>>> Maybe AOO42X introduced some changes in the overall management of
>>> properties, "Any" objects and the like, that could have more or less
>>> inadvertently solved this issue? Has anyone reproduced the problem
>>> with AOO42X or trunk?
>>> 
>>> I would tend to blame the overall system because of the loads of
>>> warnings that are emitted by clang 12 when it compiles AOO41X.
>>> 
>>> I don't know if it's worth the effort to further look into this, or
>>> instead, just leave AOO41X working with older compilers and move
>>> forward with AOO42X.
>>> 
>>> Comments, questions, criticism are welcome!
>>> 
>>> Best regards,
>>> -- 
>>> Arrigo
>>> 
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: dev-unsubscribe@openoffice.apache.org
>>> For additional commands, e-mail: dev-help@openoffice.apache.org
>>> 
>> 
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscribe@openoffice.apache.org <ma...@openoffice.apache.org>
>> For additional commands, e-mail: dev-help@openoffice.apache.org <ma...@openoffice.apache.org>

Re: [OS/2 and macOS] saving ODS with chart

Posted by Matthias Seidel <ma...@hamburg.de>.
Hi Jim,

Am 03.08.21 um 18:42 schrieb Jim Jagielski:
> Wow. This is weird, but also kind of makes sense since it seems so very, very platform and SDK sensitive.
>
> Someone remind me what the catalina branch is and how it relates to trunk and AOO42X, please :-)
https://github.com/apache/openoffice/tree/catalina
>
>
>> On Jul 27, 2021, at 4:21 PM, Arrigo Marchiori <ar...@yahoo.it.INVALID> wrote:
>>
>> Hello All,
>>
>> resurrecting an old thread.
>>
>> On Thu, May 27, 2021 at 02:19:44PM -0000, Yuri Dario wrote:
>>
>>> Hi,
>>>
>>>> i can build AOO 4.2.x without problems with gcc 6.3 which is in Debian 9
>>>> I had problems to build it at Debian 10 with gcc 8.3.
>>> here I have a 4.2 build done under Manjaro with gcc 9.2: saving a diagram 
>>> in ods format works fine, so it doesn't seems to be a compiler issue;
>>>
>>> How is XML writing done with ODS files?
>> It's... complicated ;-)
>>
>> I tried to dig deeper into this problem, as I could reproduce it with
>> the "catalina" branch on our Mac Mini.
>>
>>
>> Executive Summary (TL;DR ;-)
>> ============================
>> A boolean setting is not recognized as a boolean. An exception is
>> thrown when accessing it. The exception is swallowed and the XML
>> files' contents are not written.
>>
>>
>> Details
>> =======
>> Method XMLFilter::impl_Export() in file
>> main/chart2/source/model/filter/XMLFilter.cxx:599 [1] has the
>> responsibility to output the XML files that describe the chart. It
>> sets some common options (beans::XPropertySet xInfoSet), and appends
>> them to uno::Sequence aFilterProperties. This sequence, together with
>> other pieces of information, is passed to the three invocations of
>> method XMLFilter::impl_ExportStream(), that starts at line 754.
>> Each invocation should give the contents of one XML file.
>> But in fact they do nothing.
>>
>> Each invocation of method XMLFilter::impl_ExportStream() gets up to
>> line:
>>
>> 810:  xExporter->setSourceDocument( m_xSourceDoc );
>>
>> This method raises an exception, that is caught below at line 820. The
>> return code "nWarning" is never set to anything but zero, therefore
>> the method returns (line 824) having failed its task, but reporting
>> success.
>>
>> The question is: why does the above method setSourceDocument() throw
>> an exception? Let's look into it. I am not sure it is called directly
>> due to inheritance and virtual methods, but in the end it is [2]
>> SvXMLExport::setSourceDocument() in file
>> xmloff/source/core/xmlexp.cxx:676
>>
>> The exception is thrown at a seemingly harmless line:
>>
>> 703:  if (::cppu::any2bool(aAny))
>>
>> because for some reason, that "aAny" value, returned by method
>> beans::XPropertySetInfo::getPropertyValue(), is not a bool, and
>> function any2bool() throws because it cannot decode it.
>>
>> But that property _was_ set as a bool by method
>> XMLFilter::impl_Export(), in file
>> main/chart2/source/model/filter/XMLFilter.cxx, at the beginning of
>> this explanation:
>>
>> 691:  xInfoSet->setPropertyValue( sUsePrettyPrinting, uno::makeAny( bUsePrettyPrinting ) );
>>
>> References:
>>
>> 1: https://github.com/apache/openoffice/blob/f1593045b154fade3a67d5f1771054eccc807e3f/main/chart2/source/model/filter/XMLFilter.cxx#L599
>>
>> 2: https://github.com/apache/openoffice/blob/f1593045b154fade3a67d5f1771054eccc807e3f/main/xmloff/source/core/xmlexp.cxx#L676
>>
>>
>> Questions and comments
>> ======================
>> Why does ::cppu::any2bool(aAny) not recognize a value constructed as
>> uno::makeAny( bUsePrettyPrinting ) ?
>>
>> Or is the beans::XPropertySet the culprit?
>>
>> Both CXX files pointed above have not been touched for at least 8
>> years. Why are they failing now? And why are they failing on a
>> seemingly trivial issue like a boolean property?
>>
>> Maybe AOO42X introduced some changes in the overall management of
>> properties, "Any" objects and the like, that could have more or less
>> inadvertently solved this issue? Has anyone reproduced the problem
>> with AOO42X or trunk?
>>
>> I would tend to blame the overall system because of the loads of
>> warnings that are emitted by clang 12 when it compiles AOO41X.
>>
>> I don't know if it's worth the effort to further look into this, or
>> instead, just leave AOO41X working with older compilers and move
>> forward with AOO42X.
>>
>> Comments, questions, criticism are welcome!
>>
>> Best regards,
>> -- 
>> Arrigo
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscribe@openoffice.apache.org
>> For additional commands, e-mail: dev-help@openoffice.apache.org
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@openoffice.apache.org
> For additional commands, e-mail: dev-help@openoffice.apache.org
>


Re: [OS/2 and macOS] saving ODS with chart

Posted by Jim Jagielski <ji...@jaguNET.com>.
Wow. This is weird, but also kind of makes sense since it seems so very, very platform and SDK sensitive.

Someone remind me what the catalina branch is and how it relates to trunk and AOO42X, please :-)


> On Jul 27, 2021, at 4:21 PM, Arrigo Marchiori <ar...@yahoo.it.INVALID> wrote:
> 
> Hello All,
> 
> resurrecting an old thread.
> 
> On Thu, May 27, 2021 at 02:19:44PM -0000, Yuri Dario wrote:
> 
>> Hi,
>> 
>>> i can build AOO 4.2.x without problems with gcc 6.3 which is in Debian 9
>>> I had problems to build it at Debian 10 with gcc 8.3.
>> 
>> here I have a 4.2 build done under Manjaro with gcc 9.2: saving a diagram 
>> in ods format works fine, so it doesn't seems to be a compiler issue;
>> 
>> How is XML writing done with ODS files?
> 
> It's... complicated ;-)
> 
> I tried to dig deeper into this problem, as I could reproduce it with
> the "catalina" branch on our Mac Mini.
> 
> 
> Executive Summary (TL;DR ;-)
> ============================
> A boolean setting is not recognized as a boolean. An exception is
> thrown when accessing it. The exception is swallowed and the XML
> files' contents are not written.
> 
> 
> Details
> =======
> Method XMLFilter::impl_Export() in file
> main/chart2/source/model/filter/XMLFilter.cxx:599 [1] has the
> responsibility to output the XML files that describe the chart. It
> sets some common options (beans::XPropertySet xInfoSet), and appends
> them to uno::Sequence aFilterProperties. This sequence, together with
> other pieces of information, is passed to the three invocations of
> method XMLFilter::impl_ExportStream(), that starts at line 754.
> Each invocation should give the contents of one XML file.
> But in fact they do nothing.
> 
> Each invocation of method XMLFilter::impl_ExportStream() gets up to
> line:
> 
> 810:  xExporter->setSourceDocument( m_xSourceDoc );
> 
> This method raises an exception, that is caught below at line 820. The
> return code "nWarning" is never set to anything but zero, therefore
> the method returns (line 824) having failed its task, but reporting
> success.
> 
> The question is: why does the above method setSourceDocument() throw
> an exception? Let's look into it. I am not sure it is called directly
> due to inheritance and virtual methods, but in the end it is [2]
> SvXMLExport::setSourceDocument() in file
> xmloff/source/core/xmlexp.cxx:676
> 
> The exception is thrown at a seemingly harmless line:
> 
> 703:  if (::cppu::any2bool(aAny))
> 
> because for some reason, that "aAny" value, returned by method
> beans::XPropertySetInfo::getPropertyValue(), is not a bool, and
> function any2bool() throws because it cannot decode it.
> 
> But that property _was_ set as a bool by method
> XMLFilter::impl_Export(), in file
> main/chart2/source/model/filter/XMLFilter.cxx, at the beginning of
> this explanation:
> 
> 691:  xInfoSet->setPropertyValue( sUsePrettyPrinting, uno::makeAny( bUsePrettyPrinting ) );
> 
> References:
> 
> 1: https://github.com/apache/openoffice/blob/f1593045b154fade3a67d5f1771054eccc807e3f/main/chart2/source/model/filter/XMLFilter.cxx#L599
> 
> 2: https://github.com/apache/openoffice/blob/f1593045b154fade3a67d5f1771054eccc807e3f/main/xmloff/source/core/xmlexp.cxx#L676
> 
> 
> Questions and comments
> ======================
> Why does ::cppu::any2bool(aAny) not recognize a value constructed as
> uno::makeAny( bUsePrettyPrinting ) ?
> 
> Or is the beans::XPropertySet the culprit?
> 
> Both CXX files pointed above have not been touched for at least 8
> years. Why are they failing now? And why are they failing on a
> seemingly trivial issue like a boolean property?
> 
> Maybe AOO42X introduced some changes in the overall management of
> properties, "Any" objects and the like, that could have more or less
> inadvertently solved this issue? Has anyone reproduced the problem
> with AOO42X or trunk?
> 
> I would tend to blame the overall system because of the loads of
> warnings that are emitted by clang 12 when it compiles AOO41X.
> 
> I don't know if it's worth the effort to further look into this, or
> instead, just leave AOO41X working with older compilers and move
> forward with AOO42X.
> 
> Comments, questions, criticism are welcome!
> 
> Best regards,
> -- 
> Arrigo
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@openoffice.apache.org
> For additional commands, e-mail: dev-help@openoffice.apache.org
> 


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


Re: [OS/2 and macOS] saving ODS with chart

Posted by Yuri Dario <yd...@os2power.com>.
Hi Arrigo,

> Maybe someone else can test on OS/2?

I can build relevant code with debug info once I get back from holidays. 
I hope to give a try in about 10 days.

Thanks for finding this!

Yuri



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


Re: [OS/2 and macOS] saving ODS with chart

Posted by Arrigo Marchiori <ar...@yahoo.it.INVALID>.
Hello Damjan,

On Wed, Jul 28, 2021 at 12:03:37PM +0200, Damjan Jovanovic wrote:

> On Tue, Jul 27, 2021 at 10:21 PM Arrigo Marchiori <ar...@yahoo.it.invalid>
> wrote:
> 
> > But that property _was_ set as a bool by method
> > XMLFilter::impl_Export(), in file
> > main/chart2/source/model/filter/XMLFilter.cxx, at the beginning of
> > this explanation:
> >
> > 691:  xInfoSet->setPropertyValue( sUsePrettyPrinting, uno::makeAny(
> > bUsePrettyPrinting ) );

> Immediately after that runs, add a watchpoint to that expression, then
> resume. The debugger should be able to catch changes to that region of
> memory, and stop execution when it changes, at which point you can examine
> where the misbehaving code is. If it doesn't, then the problem is
> elsewhere, eg. the Any being written to and the Any being read are
> different objects.
> 
> See https://sourceware.org/gdb/onlinedocs/gdb/Set-Watchpoints.html

Thank you very much for your suggestion!
Unfortunately, the "catalina" branch does not compile in debug mode :-(
so I cannot follow this path.

Maybe someone else can test on OS/2?

Best regards,
-- 
Arrigo

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


Re: [OS/2 and macOS] saving ODS with chart

Posted by Damjan Jovanovic <da...@apache.org>.
On Tue, Jul 27, 2021 at 10:21 PM Arrigo Marchiori <ar...@yahoo.it.invalid>
wrote:

> But that property _was_ set as a bool by method
> XMLFilter::impl_Export(), in file
> main/chart2/source/model/filter/XMLFilter.cxx, at the beginning of
> this explanation:
>
> 691:  xInfoSet->setPropertyValue( sUsePrettyPrinting, uno::makeAny(
> bUsePrettyPrinting ) );
>
> Immediately after that runs, add a watchpoint to that expression, then
resume. The debugger should be able to catch changes to that region of
memory, and stop execution when it changes, at which point you can examine
where the misbehaving code is. If it doesn't, then the problem is
elsewhere, eg. the Any being written to and the Any being read are
different objects.

See https://sourceware.org/gdb/onlinedocs/gdb/Set-Watchpoints.html

Good luck
Damjan

Re: [OS/2 and macOS] saving ODS with chart

Posted by Arrigo Marchiori <ar...@yahoo.it.INVALID>.
Hello Carl,

On Tue, Jul 27, 2021 at 10:14:55PM -0400, Carl Marcum wrote:

> Hi Arrigo,
> 
> On 7/27/21 4:21 PM, Arrigo Marchiori wrote:
> > Hello All,
> > 
> > resurrecting an old thread.
> > 
> > On Thu, May 27, 2021 at 02:19:44PM -0000, Yuri Dario wrote:
> > 
> > > Hi,
> > > 
> > > > i can build AOO 4.2.x without problems with gcc 6.3 which is in Debian 9
> > > > I had problems to build it at Debian 10 with gcc 8.3.
> > > here I have a 4.2 build done under Manjaro with gcc 9.2: saving a diagram
> > > in ods format works fine, so it doesn't seems to be a compiler issue;
> > > 
> > > How is XML writing done with ODS files?
> > It's... complicated ;-)
> > 
> > I tried to dig deeper into this problem, as I could reproduce it with
> > the "catalina" branch on our Mac Mini.
> > 
> > 
> > Executive Summary (TL;DR ;-)
> > ============================
> > A boolean setting is not recognized as a boolean. An exception is
> > thrown when accessing it. The exception is swallowed and the XML
> > files' contents are not written.
[...]
> 
> Would it be worth a try to check that the value type of the Any is a bool
> before accessing it like code further down at line 2114:
> 
> if (xPropertySetInfo->hasPropertyByName(sRepeat))
> {
>     uno::Any aAny = mxExportInfo->getPropertyValue(sRepeat);
>     if (aAny.getValueType() == getBooleanCppuType())
>         mpProgressBarHelper->SetRepeat(::cppu::any2bool(aAny));
>     else {
>         DBG_ERRORFILE("why is it no boolean?");
>     }
> }

I believe that this would surely help avoiding that specific exception
and possibly allow the chart to be saved.

But why cannot we trust that value, that was explicitly set as a
boolean, and is not later recognized as such? And why does this happen
only when using certain compilers?

I am afraid there is something bigger behind this problem. Similar
problems could be scattered around the code, and may silently corrupt
user data. Exceptions are routinely swallowed, therefore the user is
hardly informed when something wrong has happened (we should have got
a warning just for this problem, and we did not!).

To use a common metaphor, we should refrain from chasing chicken, and
rather repair the fence.

But can we?

Best regards,
-- 
Arrigo

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


Re: [OS/2 and macOS] saving ODS with chart

Posted by Carl Marcum <cm...@apache.org>.
Hi Arrigo,

On 7/27/21 4:21 PM, Arrigo Marchiori wrote:
> Hello All,
>
> resurrecting an old thread.
>
> On Thu, May 27, 2021 at 02:19:44PM -0000, Yuri Dario wrote:
>
>> Hi,
>>
>>> i can build AOO 4.2.x without problems with gcc 6.3 which is in Debian 9
>>> I had problems to build it at Debian 10 with gcc 8.3.
>> here I have a 4.2 build done under Manjaro with gcc 9.2: saving a diagram
>> in ods format works fine, so it doesn't seems to be a compiler issue;
>>
>> How is XML writing done with ODS files?
> It's... complicated ;-)
>
> I tried to dig deeper into this problem, as I could reproduce it with
> the "catalina" branch on our Mac Mini.
>
>
> Executive Summary (TL;DR ;-)
> ============================
> A boolean setting is not recognized as a boolean. An exception is
> thrown when accessing it. The exception is swallowed and the XML
> files' contents are not written.
>
>
> Details
> =======
> Method XMLFilter::impl_Export() in file
> main/chart2/source/model/filter/XMLFilter.cxx:599 [1] has the
> responsibility to output the XML files that describe the chart. It
> sets some common options (beans::XPropertySet xInfoSet), and appends
> them to uno::Sequence aFilterProperties. This sequence, together with
> other pieces of information, is passed to the three invocations of
> method XMLFilter::impl_ExportStream(), that starts at line 754.
> Each invocation should give the contents of one XML file.
> But in fact they do nothing.
>
> Each invocation of method XMLFilter::impl_ExportStream() gets up to
> line:
>
> 810:  xExporter->setSourceDocument( m_xSourceDoc );
>
> This method raises an exception, that is caught below at line 820. The
> return code "nWarning" is never set to anything but zero, therefore
> the method returns (line 824) having failed its task, but reporting
> success.
>
> The question is: why does the above method setSourceDocument() throw
> an exception? Let's look into it. I am not sure it is called directly
> due to inheritance and virtual methods, but in the end it is [2]
> SvXMLExport::setSourceDocument() in file
> xmloff/source/core/xmlexp.cxx:676
>
> The exception is thrown at a seemingly harmless line:
>
> 703:  if (::cppu::any2bool(aAny))
>
> because for some reason, that "aAny" value, returned by method
> beans::XPropertySetInfo::getPropertyValue(), is not a bool, and
> function any2bool() throws because it cannot decode it.
>
> But that property _was_ set as a bool by method
> XMLFilter::impl_Export(), in file
> main/chart2/source/model/filter/XMLFilter.cxx, at the beginning of
> this explanation:
>
> 691:  xInfoSet->setPropertyValue( sUsePrettyPrinting, uno::makeAny( bUsePrettyPrinting ) );
>
> References:
>
>   1: https://github.com/apache/openoffice/blob/f1593045b154fade3a67d5f1771054eccc807e3f/main/chart2/source/model/filter/XMLFilter.cxx#L599
>
>   2: https://github.com/apache/openoffice/blob/f1593045b154fade3a67d5f1771054eccc807e3f/main/xmloff/source/core/xmlexp.cxx#L676
>
>
> Questions and comments
> ======================
> Why does ::cppu::any2bool(aAny) not recognize a value constructed as
> uno::makeAny( bUsePrettyPrinting ) ?
>
> Or is the beans::XPropertySet the culprit?
>
> Both CXX files pointed above have not been touched for at least 8
> years. Why are they failing now? And why are they failing on a
> seemingly trivial issue like a boolean property?
>
> Maybe AOO42X introduced some changes in the overall management of
> properties, "Any" objects and the like, that could have more or less
> inadvertently solved this issue? Has anyone reproduced the problem
> with AOO42X or trunk?
>
> I would tend to blame the overall system because of the loads of
> warnings that are emitted by clang 12 when it compiles AOO41X.
>
> I don't know if it's worth the effort to further look into this, or
> instead, just leave AOO41X working with older compilers and move
> forward with AOO42X.
>
> Comments, questions, criticism are welcome!
>
> Best regards,

Would it be worth a try to check that the value type of the Any is a 
bool before accessing it like code further down at line 2114:

if (xPropertySetInfo->hasPropertyByName(sRepeat))
{
     uno::Any aAny = mxExportInfo->getPropertyValue(sRepeat);
     if (aAny.getValueType() == getBooleanCppuType())
         mpProgressBarHelper->SetRepeat(::cppu::any2bool(aAny));
     else {
         DBG_ERRORFILE("why is it no boolean?");
     }
}

Best regards,
Carl



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