vcl/source/filter/wmf/winwmf.cxx |   11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

New commits:
commit c7cf94f70f4673b1f6933dbd28cbd89ab459fc45
Author: Caolán McNamara <caol...@redhat.com>
Date:   Fri Feb 24 11:28:44 2017 +0000

    clarify this code a little bit
    
    no logic change intended
    
    Change-Id: I620822e71386bae05312474423c22b84d8608cbd

diff --git a/vcl/source/filter/wmf/winwmf.cxx b/vcl/source/filter/wmf/winwmf.cxx
index b8ac93d..810aa10 100644
--- a/vcl/source/filter/wmf/winwmf.cxx
+++ b/vcl/source/filter/wmf/winwmf.cxx
@@ -537,6 +537,7 @@ void WMFReader::ReadRecordParams( sal_uInt16 nFunc )
             if( nLen )
             {
                 sal_Int32 nOriginalTextLen = nLen;
+                sal_Int32 nOriginalBlockLen = ( nOriginalTextLen + 1 ) &~ 1;
                 Rectangle aRect;
                 if( nOptions & ETO_CLIPPED )
                 {
@@ -544,11 +545,11 @@ void WMFReader::ReadRecordParams( sal_uInt16 nFunc )
                     const Point aPt2( ReadPoint() );
                     aRect = Rectangle( aPt1, aPt2 );
                 }
-                std::unique_ptr<char[]> pChar(new char[ ( nOriginalTextLen + 1 
) &~ 1 ]);
-                pWMF->ReadBytes(pChar.get(), (nOriginalTextLen + 1) &~ 1);
-                OUString aText( pChar.get(), (sal_uInt16)nOriginalTextLen, 
pOut->GetCharSet() );// after this conversion the text may contain
-                sal_Int32 nNewTextLen = aText.getLength();                     
                 // less character (japanese version), so the
-                                                                               
                 // dxAry will not fit
+                std::unique_ptr<char[]> pChar(new char[nOriginalBlockLen]);
+                pWMF->ReadBytes(pChar.get(), nOriginalBlockLen);
+                OUString aText(pChar.get(), nOriginalTextLen, 
pOut->GetCharSet()); // after this conversion the text may contain
+                sal_Int32 nNewTextLen = aText.getLength();                     
    // less character (japanese version), so the
+                                                                               
    // dxAry will not fit
                 if ( nNewTextLen )
                 {
                     std::unique_ptr<long[]> pDXAry, pDYAry;
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to