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 ) )
-- 
To view, visit https://gerrit.libreoffice.org/2003
To unsubscribe, visit https://gerrit.libreoffice.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I81548d1c6a32f0445dc18e31c84c3df85163ed45
Gerrit-PatchSet: 1
Gerrit-Project: core
Gerrit-Branch: libreoffice-4-0
Gerrit-Owner: Noel Power <noel.power@suse.com>
Context
- [PATCH libreoffice-4-0] fix for fdo#60065 · Noel Power (via Code Review)
 
   
 
  Privacy Policy |
  
Impressum (Legal Info) |
  
Copyright information: Unless otherwise specified, all text and images
  on this website are licensed under the
  
Creative Commons Attribution-Share Alike 3.0 License.
  This does not include the source code of LibreOffice, which is
  licensed under the Mozilla Public License (
MPLv2).
  "LibreOffice" and "The Document Foundation" are
  registered trademarks of their corresponding registered owners or are
  in actual use as trademarks in one or more countries. Their respective
  logos and icons are also subject to international copyright laws. Use
  thereof is explained in our 
trademark policy.