fix for fdo#60065
squash errors trying to gain object for rhs ( where no object yet exists ( Change-Id: I81548d1c6a32f0445dc18e31c84c3df85163ed45
This commit is contained in:
15
basic/qa/basic_coverage/uno_struct_assign.vb
Normal file
15
basic/qa/basic_coverage/uno_struct_assign.vb
Normal file
@@ -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
|
@@ -388,7 +388,17 @@ inline bool checkUnoStructCopy( bool bVBA, SbxVariableRef& refVal, SbxVariableRe
|
|||||||
if ( aAny.getValueType().getTypeClass() == TypeClass_STRUCT )
|
if ( aAny.getValueType().getTypeClass() == TypeClass_STRUCT )
|
||||||
{
|
{
|
||||||
refVar->SetType( SbxOBJECT );
|
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();
|
SbxObjectRef xVarObj = (SbxObject*)refVar->GetObject();
|
||||||
|
if ( eOldErr != SbxERR_OK )
|
||||||
|
refVar->SetError( eOldErr );
|
||||||
|
else
|
||||||
|
refVar->ResetError();
|
||||||
|
|
||||||
SbUnoStructRefObject* pUnoStructObj = PTR_CAST(SbUnoStructRefObject,(SbxObject*)xVarObj);
|
SbUnoStructRefObject* pUnoStructObj = PTR_CAST(SbUnoStructRefObject,(SbxObject*)xVarObj);
|
||||||
|
|
||||||
if ( ( !pUnoVal && !pUnoStructVal ) )
|
if ( ( !pUnoVal && !pUnoStructVal ) )
|
||||||
|
Reference in New Issue
Block a user