include/comphelper/sequence.hxx |   11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

New commits:
commit 00a76942e423589e3fdd4e059be753eab3393344
Author:     Mike Kaganski <mike.kagan...@collabora.com>
AuthorDate: Fri Oct 29 16:23:53 2021 +0200
Commit:     Mike Kaganski <mike.kagan...@collabora.com>
CommitDate: Sat Oct 30 08:01:28 2021 +0200

    Optimize comphelper::arrayToSequence for same types case
    
    Change-Id: I4949a997f4496e20845a83825fab652089500bad
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124202
    Tested-by: Jenkins
    Reviewed-by: Mike Kaganski <mike.kagan...@collabora.com>

diff --git a/include/comphelper/sequence.hxx b/include/comphelper/sequence.hxx
index a42ef2d2f341..1aa3fbea803d 100644
--- a/include/comphelper/sequence.hxx
+++ b/include/comphelper/sequence.hxx
@@ -121,9 +121,14 @@ namespace comphelper
     template < typename DstType, typename SrcType >
     inline css::uno::Sequence< DstType > arrayToSequence( const SrcType* 
i_pArray, sal_Int32 nNum )
     {
-        css::uno::Sequence< DstType > result( nNum );
-        ::std::copy( i_pArray, i_pArray+nNum, result.getArray() );
-        return result;
+        if constexpr (std::is_same_v< DstType, SrcType >)
+            return css::uno::Sequence< DstType >( i_pArray, nNum );
+        else
+        {
+            css::uno::Sequence< DstType > result( nNum );
+            ::std::copy( i_pArray, i_pArray+nNum, result.getArray() );
+            return result;
+        }
     }
 
 

Reply via email to