[Libreoffice-commits] core.git: include/unotools unotools/source
Caolán McNamara
caolanm at redhat.com
Thu Nov 3 11:24:10 UTC 2016
include/unotools/confignode.hxx | 3 ++
unotools/source/config/confignode.cxx | 46 ++++++++++++++++++++++++++++------
2 files changed, 42 insertions(+), 7 deletions(-)
New commits:
commit 11a1b70da2f8d788f18cd0c4b8a4c5d0386aa72e
Author: Caolán McNamara <caolanm at redhat.com>
Date: Thu Nov 3 10:38:22 2016 +0000
coverity#1371313 Missing move assignment operator
Change-Id: I07a9d7fe837c18e66b4a2a57186f1f9b0d44daee
diff --git a/include/unotools/confignode.hxx b/include/unotools/confignode.hxx
index cae0bd9..83f3ee5 100644
--- a/include/unotools/confignode.hxx
+++ b/include/unotools/confignode.hxx
@@ -74,9 +74,12 @@ namespace utl
OConfigurationNode() :m_bEscapeNames(false) { }
/// copy ctor
OConfigurationNode(const OConfigurationNode& _rSource);
+ /// move ctor
+ OConfigurationNode(OConfigurationNode&& _rSource);
/// assigment
OConfigurationNode& operator=(const OConfigurationNode& _rSource);
+ OConfigurationNode& operator=(OConfigurationNode&& _rSource);
/// dtor
virtual ~OConfigurationNode() override {}
diff --git a/unotools/source/config/confignode.cxx b/unotools/source/config/confignode.cxx
index 4d0eec9..9342658 100644
--- a/unotools/source/config/confignode.cxx
+++ b/unotools/source/config/confignode.cxx
@@ -78,13 +78,27 @@ namespace utl
}
OConfigurationNode::OConfigurationNode(const OConfigurationNode& _rSource)
- :OEventListenerAdapter()
- ,m_xHierarchyAccess(_rSource.m_xHierarchyAccess)
- ,m_xDirectAccess(_rSource.m_xDirectAccess)
- ,m_xReplaceAccess(_rSource.m_xReplaceAccess)
- ,m_xContainerAccess(_rSource.m_xContainerAccess)
- ,m_bEscapeNames(_rSource.m_bEscapeNames)
- ,m_sCompletePath(_rSource.m_sCompletePath)
+ : OEventListenerAdapter()
+ , m_xHierarchyAccess(_rSource.m_xHierarchyAccess)
+ , m_xDirectAccess(_rSource.m_xDirectAccess)
+ , m_xReplaceAccess(_rSource.m_xReplaceAccess)
+ , m_xContainerAccess(_rSource.m_xContainerAccess)
+ , m_bEscapeNames(_rSource.m_bEscapeNames)
+ , m_sCompletePath(_rSource.m_sCompletePath)
+ {
+ Reference< XComponent > xConfigNodeComp(m_xDirectAccess, UNO_QUERY);
+ if (xConfigNodeComp.is())
+ startComponentListening(xConfigNodeComp);
+ }
+
+ OConfigurationNode::OConfigurationNode(OConfigurationNode&& _rSource)
+ : OEventListenerAdapter()
+ , m_xHierarchyAccess(std::move(_rSource.m_xHierarchyAccess))
+ , m_xDirectAccess(std::move(_rSource.m_xDirectAccess))
+ , m_xReplaceAccess(std::move(_rSource.m_xReplaceAccess))
+ , m_xContainerAccess(std::move(_rSource.m_xContainerAccess))
+ , m_bEscapeNames(std::move(_rSource.m_bEscapeNames))
+ , m_sCompletePath(std::move(_rSource.m_sCompletePath))
{
Reference< XComponent > xConfigNodeComp(m_xDirectAccess, UNO_QUERY);
if (xConfigNodeComp.is())
@@ -109,6 +123,24 @@ namespace utl
return *this;
}
+ OConfigurationNode& OConfigurationNode::operator=(OConfigurationNode&& _rSource)
+ {
+ stopAllComponentListening();
+
+ m_xHierarchyAccess = std::move(_rSource.m_xHierarchyAccess);
+ m_xDirectAccess = std::move(_rSource.m_xDirectAccess);
+ m_xContainerAccess = std::move(_rSource.m_xContainerAccess);
+ m_xReplaceAccess = std::move(_rSource.m_xReplaceAccess);
+ m_bEscapeNames = std::move(_rSource.m_bEscapeNames);
+ m_sCompletePath = std::move(_rSource.m_sCompletePath);
+
+ Reference< XComponent > xConfigNodeComp(m_xDirectAccess, UNO_QUERY);
+ if (xConfigNodeComp.is())
+ startComponentListening(xConfigNodeComp);
+
+ return *this;
+ }
+
void OConfigurationNode::_disposing( const EventObject& _rSource )
{
Reference< XComponent > xDisposingSource(_rSource.Source, UNO_QUERY);
More information about the Libreoffice-commits
mailing list