filter/source/msfilter/svdfppt.cxx |   19 ++++++++++---------
 1 file changed, 10 insertions(+), 9 deletions(-)

New commits:
commit 0d4c1cc6ea39404c4ad1c8abe0d70dabcac1e017
Author:     Caolán McNamara <caol...@redhat.com>
AuthorDate: Sun Nov 7 15:17:22 2021 +0000
Commit:     Caolán McNamara <caol...@redhat.com>
CommitDate: Sun Nov 7 18:07:41 2021 +0100

    use a std::vector
    
    Change-Id: I186f34025863882951aaa70f94ea21b8ac556dab
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124821
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <caol...@redhat.com>

diff --git a/filter/source/msfilter/svdfppt.cxx 
b/filter/source/msfilter/svdfppt.cxx
index ba2bc383f6bd..a4f469967bb5 100644
--- a/filter/source/msfilter/svdfppt.cxx
+++ b/filter/source/msfilter/svdfppt.cxx
@@ -5253,16 +5253,17 @@ void PPTStyleTextPropReader::Init( SvStream& rIn, const 
DffRecordHeader& rTextHe
 
     if( aTextHd.nRecType == PPT_PST_TextCharsAtom )
     {
-        sal_uInt32 i;
-        sal_Unicode nChar;
-        std::unique_ptr<sal_Unicode[]> pBuf(new sal_Unicode[ ( nMaxLen >> 1 ) 
+ 1 ]);
-        void* pDest = pBuf.get();
+        std::vector<sal_Unicode> aBuf(( nMaxLen >> 1 ) + 1);
+        void* pDest = aBuf.data();
         auto nRead = rIn.ReadBytes(pDest, nMaxLen);
         if (nRead != nMaxLen)
             memset(static_cast<char*>(pDest) + nRead, 0, nMaxLen - nRead);
         nMaxLen >>= 1;
-        pBuf[ nMaxLen ] = 0;
-        sal_Unicode* pPtr = pBuf.get();
+        aBuf[nMaxLen] = 0;
+
+        sal_uInt32 i;
+        sal_Unicode* pPtr = aBuf.data();
+
 #ifdef OSL_BIGENDIAN
         sal_Unicode nTemp;
         for ( i = 0; i < nMaxLen; i++ )
@@ -5270,12 +5271,12 @@ void PPTStyleTextPropReader::Init( SvStream& rIn, const 
DffRecordHeader& rTextHe
             nTemp = *pPtr;
             *pPtr++ = ( nTemp << 8 ) | ( nTemp >> 8 );
         }
-        pPtr = pBuf.get();
+        pPtr = aBuf.data();
 #endif
 
         for ( i = 0; i < nMaxLen; pPtr++, i++ )
         {
-            nChar = *pPtr;
+            sal_Unicode nChar = *pPtr;
             if ( !nChar )
                 break;
             if ( ( nChar & 0xff00 ) == 0xf000 )         // in this special 
case we got a symbol
@@ -5289,7 +5290,7 @@ void PPTStyleTextPropReader::Init( SvStream& rIn, const 
DffRecordHeader& rTextHe
             }
         }
         if ( i )
-            aString = OUString(pBuf.get(), i);
+            aString = OUString(aBuf.data(), i);
     }
     else if( aTextHd.nRecType == PPT_PST_TextBytesAtom )
     {

Reply via email to