sw/source/filter/ww8/ww8scan.cxx |   17 +++++++----------
 sw/source/filter/ww8/ww8scan.hxx |    2 ++
 2 files changed, 9 insertions(+), 10 deletions(-)

New commits:
commit 5d4dcc5228ce0f1c5eee34101be10ff2fcd5f49c
Author:     Noel Grandin <noel.gran...@collabora.co.uk>
AuthorDate: Thu Nov 2 06:21:38 2023 +0100
Commit:     Noel Grandin <noel.gran...@collabora.co.uk>
CommitDate: Thu Nov 2 08:16:27 2023 +0100

    Revert "WW8PLCFx_PCDAttrs::m_aShortSprm can be local"
    
    This reverts commit 2779984709d24ad263547407069a5da0fda36ceb.
    
    Reason for revert: we are storing a pointer to this field
    
    Change-Id: Idce917f676f2f1f845f4f4a3ea6dd911818c3eea
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158707
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk>

diff --git a/sw/source/filter/ww8/ww8scan.cxx b/sw/source/filter/ww8/ww8scan.cxx
index 6f801b929d57..c7b175f56e61 100644
--- a/sw/source/filter/ww8/ww8scan.cxx
+++ b/sw/source/filter/ww8/ww8scan.cxx
@@ -1023,13 +1023,12 @@ void WW8PLCFx_PCDAttrs::GetSprms(WW8PLCFxDesc* p)
 
         if (IsSevenMinus(GetFIBVersion()))
         {
-            SVBT32 aShortSprm; // mini storage: can contain ONE sprm with 1 
byte param
-            aShortSprm[0] = static_cast<sal_uInt8>( ( nPrm & 0xfe) >> 1 );
-            aShortSprm[1] = static_cast<sal_uInt8>(   nPrm         >> 8 );
+            m_aShortSprm[0] = static_cast<sal_uInt8>( ( nPrm & 0xfe) >> 1 );
+            m_aShortSprm[1] = static_cast<sal_uInt8>(   nPrm         >> 8 );
             p->nSprmsLen = nPrm ? 2 : 0;        // length
 
             // store Position of internal mini storage in Data Pointer
-            p->pMemPos = aShortSprm;
+            p->pMemPos = m_aShortSprm;
         }
         else
         {
@@ -1120,18 +1119,16 @@ void WW8PLCFx_PCDAttrs::GetSprms(WW8PLCFxDesc* p)
 
                 if( nSprmId )
                 {
-                    SVBT32 aShortSprm; // mini storage: can contain ONE sprm 
with 1 byte param
-
                     // move Sprm Id and Sprm Param to internal mini storage:
-                    aShortSprm[0] = static_cast<sal_uInt8>( nSprmId & 0x00ff)  
     ;
-                    aShortSprm[1] = static_cast<sal_uInt8>( ( nSprmId & 
0xff00) >> 8 );
-                    aShortSprm[2] = static_cast<sal_uInt8>( nPrm >> 8 );
+                    m_aShortSprm[0] = static_cast<sal_uInt8>( nSprmId & 
0x00ff)       ;
+                    m_aShortSprm[1] = static_cast<sal_uInt8>( ( nSprmId & 
0xff00) >> 8 );
+                    m_aShortSprm[2] = static_cast<sal_uInt8>( nPrm >> 8 );
 
                     // store Sprm Length in member:
                     p->nSprmsLen = nPrm ? 3 : 0;
 
                     // store Position of internal mini storage in Data Pointer
-                    p->pMemPos = aShortSprm;
+                    p->pMemPos = m_aShortSprm;
                 }
             }
         }
diff --git a/sw/source/filter/ww8/ww8scan.hxx b/sw/source/filter/ww8/ww8scan.hxx
index d8fc08334bd6..d69a822554f5 100644
--- a/sw/source/filter/ww8/ww8scan.hxx
+++ b/sw/source/filter/ww8/ww8scan.hxx
@@ -437,6 +437,8 @@ private:
     WW8PLCFpcd_Iter* m_pPcdI;
     WW8PLCFx_PCD* m_pPcd;
     std::vector<std::unique_ptr<sal_uInt8[]>> const & mrGrpprls; // attribute 
of Piece-table
+    SVBT32 m_aShortSprm;          // mini storage: can contain ONE sprm with
+                                // 1 byte param
 
     WW8PLCFx_PCDAttrs(const WW8PLCFx_PCDAttrs&) = delete;
     WW8PLCFx_PCDAttrs& operator=(const WW8PLCFx_PCDAttrs&) = delete;

Reply via email to