[PATCH libreoffice-4-0] fix for fdo#60065
Andrew Douglas Pitonyak
andrew at pitonyak.org
Wed Feb 6 18:02:47 PST 2013
Reported here:
https://bugs.freedesktop.org/show_bug.cgi?id=60371
On 02/06/2013 08:56 PM, Andrew Douglas Pitonyak wrote:
>
> Does the patch fix this regression (that fails with 4 RC2)?
>
> Sub badStruct
> Dim x As New com.sun.star.beans.PropertyValue
> Dim y As New com.sun.star.beans.PropertyValue
> x.Name = "hello"
> x.Value = y
> End Sub
>
> Unable to test with RC3 yet
>
>
>
> On 02/05/2013 10:40 AM, Noel Power (via Code Review) wrote:
>> Hi,
>>
>> I have submitted a patch for review:
>>
>> https://gerrit.libreoffice.org/2003
>>
>> To pull it, you can do:
>>
>> git pull ssh://gerrit.libreoffice.org:29418/core
>> refs/changes/03/2003/1
>>
>> fix for fdo#60065
>>
>> squash errors trying to gain object for rhs ( where no object yet
>> exists (
>>
>> Change-Id: I81548d1c6a32f0445dc18e31c84c3df85163ed45
>> ---
>> A basic/qa/basic_coverage/uno_struct_assign.vb
>> M basic/source/runtime/step0.cxx
>> 2 files changed, 25 insertions(+), 0 deletions(-)
>>
>>
>>
>> diff --git a/basic/qa/basic_coverage/uno_struct_assign.vb
>> b/basic/qa/basic_coverage/uno_struct_assign.vb
>> new file mode 100644
>> index 0000000..23812de
>> --- /dev/null
>> +++ b/basic/qa/basic_coverage/uno_struct_assign.vb
>> @@ -0,0 +1,15 @@
>> +'
>> +' This file is part of the LibreOffice project.
>> +'
>> +' This Source Code Form is subject to the terms of the Mozilla Public
>> +' License, v. 2.0. If a copy of the MPL was not distributed with this
>> +' file, You can obtain one at http://mozilla.org/MPL/2.0/.
>> +'
>> +
>> +
>> +Function doUnitTest as Integer
>> + Dim oNamedValue as new com.sun.star.beans.NamedValue
>> + Dim oCellAddress as new com.sun.star.table.CellAddress
>> + oNamedValue.Value = oCellAddress ' fdo#60065 - this would throw an
>> error
>> + doUnitTest = 1
>> +End Function
>> diff --git a/basic/source/runtime/step0.cxx
>> b/basic/source/runtime/step0.cxx
>> index 5e41425..2388722 100644
>> --- a/basic/source/runtime/step0.cxx
>> +++ b/basic/source/runtime/step0.cxx
>> @@ -388,7 +388,17 @@
>> if ( aAny.getValueType().getTypeClass() == TypeClass_STRUCT )
>> {
>> refVar->SetType( SbxOBJECT );
>> + SbxError eOldErr = refVar->GetError();
>> + // There are some circumstances when calling GetObject
>> + // will trigger an error, we need to squash those here.
>> + // Alternatively it is possible that the same scenario
>> + // could overwrite and existing error. Lets prevent that
>> SbxObjectRef xVarObj = (SbxObject*)refVar->GetObject();
>> + if ( eOldErr != SbxERR_OK )
>> + refVar->SetError( eOldErr );
>> + else
>> + refVar->ResetError();
>> +
>> SbUnoStructRefObject* pUnoStructObj =
>> PTR_CAST(SbUnoStructRefObject,(SbxObject*)xVarObj);
>> if ( ( !pUnoVal && !pUnoStructVal ) )
>>
>
--
Andrew Pitonyak
My Macro Document: http://www.pitonyak.org/AndrewMacro.odt
Info: http://www.pitonyak.org/oo.php
More information about the LibreOffice
mailing list