summaryrefslogtreecommitdiffstats
path: root/basic
diff options
context:
space:
mode:
authorAndreas Heinisch <andreas.heinisch@yahoo.de>2021-12-23 20:04:30 +0100
committerAndras Timar <andras.timar@collabora.com>2022-02-14 11:00:08 +0100
commita9927aa216e3a496f9251965914f948aa43f6e1e (patch)
tree3874cc80e1d35ab62e1e5bd0c8bf91efe4fbb63f /basic
parentsw ODF shape import: improve is-textbox check (diff)
downloadcore-a9927aa216e3a496f9251965914f948aa43f6e1e.tar.gz
core-a9927aa216e3a496f9251965914f948aa43f6e1e.zip
tdf#144353, tdf#146281 - Correctly copy the information about variables
During the assignment of a variable, copy its information only if there isn't already one present. Change-Id: I29fcfcd10406f2af0708a879d57e0a3c704f179e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127387 Tested-by: Jenkins Reviewed-by: Andreas Heinisch <andreas.heinisch@yahoo.de> (cherry picked from commit d8428094c7f8b186b37c76fd7e9508a075424f80) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129752 Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Diffstat (limited to 'basic')
-rw-r--r--basic/source/sbx/sbxvar.cxx5
1 files changed, 4 insertions, 1 deletions
diff --git a/basic/source/sbx/sbxvar.cxx b/basic/source/sbx/sbxvar.cxx
index b8be36ec2735..6097d25eb995 100644
--- a/basic/source/sbx/sbxvar.cxx
+++ b/basic/source/sbx/sbxvar.cxx
@@ -281,7 +281,10 @@ SbxVariable& SbxVariable::operator=( const SbxVariable& r )
{
SbxValue::operator=( r );
// tdf#144353 - copy information about a missing parameter. See SbiRuntime::SetIsMissing.
- if (r.pInfo && !dynamic_cast<const SbxMethod*>(&r))
+ // We cannot unconditionally assign the data about a variable because we would overwrite
+ // the information about parameters (name, type, flags, and ids). For instance, in the case
+ // where a method will be initialized with a literal.
+ if (!pInfo)
pInfo = r.pInfo;
m_aDeclareClassName = r.m_aDeclareClassName;
m_xComListener = r.m_xComListener;