summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNoel Grandin <noel@peralex.com>2016-08-25 10:42:11 +0200
committerNoel Grandin <noelgrandin@gmail.com>2016-08-25 09:37:00 +0000
commit0e74870782bd46a9654e63e19d081528fcccb6fa (patch)
treee0267c76eec67ef20c4bbdfe1e4a82967fde7b6e
parent17e137d899de51f2cab485d4e339009954e558b5 (diff)
cid#1371320 Missing move assignment operator
Change-Id: I34da999f516abedd65135f67e7479706e64e7b20 Reviewed-on: https://gerrit.libreoffice.org/28376 Reviewed-by: Noel Grandin <noelgrandin@gmail.com> Tested-by: Noel Grandin <noelgrandin@gmail.com>
-rw-r--r--connectivity/source/commontools/FValue.cxx17
-rw-r--r--include/connectivity/FValue.hxx1
2 files changed, 18 insertions, 0 deletions
diff --git a/connectivity/source/commontools/FValue.cxx b/connectivity/source/commontools/FValue.cxx
index 62861bf945c9..974363f8b916 100644
--- a/connectivity/source/commontools/FValue.cxx
+++ b/connectivity/source/commontools/FValue.cxx
@@ -464,6 +464,23 @@ ORowSetValue& ORowSetValue::operator=(const ORowSetValue& _rRH)
return *this;
}
+ORowSetValue& ORowSetValue::operator=(ORowSetValue&& _rRH)
+{
+ if ( m_eTypeKind != _rRH.m_eTypeKind || !m_bNull)
+ free();
+ if(!_rRH.m_bNull)
+ {
+ m_aValue = _rRH.m_aValue;
+ memset(&_rRH.m_aValue, 0, sizeof(_rRH.m_aValue));
+ }
+ m_bBound = _rRH.m_bBound;
+ m_eTypeKind = _rRH.m_eTypeKind;
+ m_bSigned = _rRH.m_bSigned;
+ m_bNull = _rRH.m_bNull;
+ _rRH.m_bNull = true;
+ return *this;
+}
+
ORowSetValue& ORowSetValue::operator=(const Date& _rRH)
{
diff --git a/include/connectivity/FValue.hxx b/include/connectivity/FValue.hxx
index 55341f828e92..3964f3a1be3f 100644
--- a/include/connectivity/FValue.hxx
+++ b/include/connectivity/FValue.hxx
@@ -286,6 +286,7 @@ namespace connectivity
{ }
ORowSetValue& operator=(const ORowSetValue& _rRH);
+ ORowSetValue& operator=(ORowSetValue&& _rRH);
// simple types
ORowSetValue& operator=(bool _rRH);