summaryrefslogtreecommitdiffstats
path: root/cppu
diff options
context:
space:
mode:
authorMike Kaganski <mike.kaganski@collabora.com>2021-10-26 10:53:02 +0300
committerMike Kaganski <mike.kaganski@collabora.com>2021-10-26 23:09:34 +0200
commit58edf898989c8cba7e05bdac90db812a52ea03f2 (patch)
tree01a25a44f70cdfc220e1c0259510d40ccc6d946e /cppu
parentRemove OUStringBuffer member function overloads for OUStringLiteral (diff)
downloadcore-58edf898989c8cba7e05bdac90db812a52ea03f2.tar.gz
core-58edf898989c8cba7e05bdac90db812a52ea03f2.zip
d46f659c7524625474f0bb907805e285ee27d5ec follow-up: simplify checks
Change-Id: Ib95e7c562741f76a742cd31aa033956a0f0a3c45 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124169 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Diffstat (limited to 'cppu')
-rw-r--r--cppu/source/uno/assign.hxx11
1 files changed, 4 insertions, 7 deletions
diff --git a/cppu/source/uno/assign.hxx b/cppu/source/uno/assign.hxx
index c6a2cf58b457..3e2893fde824 100644
--- a/cppu/source/uno/assign.hxx
+++ b/cppu/source/uno/assign.hxx
@@ -384,20 +384,17 @@ inline bool _assignData(
}
return false;
case typelib_TypeClass_SEQUENCE:
- if (typelib_TypeClass_SEQUENCE != pSourceType->eTypeClass)
+ if (!_type_equals( pDestType, pSourceType ))
return false;
- // self assignment:
- if (*static_cast<uno_Sequence **>(pSource) == *static_cast<uno_Sequence **>(pDest))
- return _type_equals(pDestType, pSourceType); // E.g. static empty sequence may be shared
- if (_type_equals( pDestType, pSourceType ))
+ // check self assignment (only after _type_equals, to account for shared static empty):
+ if (*static_cast<uno_Sequence **>(pSource) != *static_cast<uno_Sequence **>(pDest))
{
osl_atomic_increment( &(*static_cast<uno_Sequence **>(pSource))->nRefCount );
idestructSequence(
*static_cast<uno_Sequence **>(pDest), pDestType, pDestTypeDescr, release );
*static_cast<uno_Sequence **>(pDest) = *static_cast<uno_Sequence **>(pSource);
- return true;
}
- return false;
+ return true;
case typelib_TypeClass_INTERFACE:
if (typelib_TypeClass_INTERFACE != pSourceType->eTypeClass)
return false;