[Libreoffice-commits] .: 7 commits - extensions/source filter/inc filter/source rsc/source svtools/source testtools/source vcl/source

Caolán McNamara caolan at kemper.freedesktop.org
Fri May 25 01:26:39 PDT 2012


 extensions/source/plugin/unx/npnapi.cxx    |    3 ++-
 extensions/source/plugin/unx/npwrap.cxx    |    6 ++++--
 filter/inc/filter/msfilter/msdffimp.hxx    |    2 +-
 filter/source/msfilter/msdffimp.cxx        |   14 +++++---------
 filter/source/msfilter/svdfppt.cxx         |    4 ++--
 rsc/source/tools/rsctools.cxx              |   24 ++++++++++++------------
 svtools/source/contnr/templwin.cxx         |    4 ++--
 svtools/source/contnr/templwin.hxx         |    3 ---
 testtools/source/bridgetest/bridgetest.cxx |    4 +++-
 vcl/source/window/menu.cxx                 |    2 +-
 10 files changed, 32 insertions(+), 34 deletions(-)

New commits:
commit 306159d8ff9ef91cf8d4c92198157b7fad46211e
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Fri May 25 09:25:19 2012 +0100

    convert mpFidcls to a vector
    
    Change-Id: I41d24c8d14a781e4100813ebce136d563f8c36b8

diff --git a/filter/inc/filter/msfilter/msdffimp.hxx b/filter/inc/filter/msfilter/msdffimp.hxx
index 3366a9c..ad2e55a 100644
--- a/filter/inc/filter/msfilter/msdffimp.hxx
+++ b/filter/inc/filter/msfilter/msdffimp.hxx
@@ -478,7 +478,7 @@ typedef std::map<sal_uInt32, sal_uInt32> OffsetMap;
     sal_uInt32      mnCurMaxShapeId;    // we need this information to
     sal_uInt32      mnDrawingsSaved;    // access the right drawing
     sal_uInt32      mnIdClusters;       // while only knowing the shapeid
-    FIDCL*          mpFidcls;
+    std::vector<FIDCL> maFidcls;
     OffsetMap       maDgOffsetTable;    // array of fileoffsets
 
     friend class DffPropertyReader;
diff --git a/filter/source/msfilter/msdffimp.cxx b/filter/source/msfilter/msdffimp.cxx
index c4a6bca..4c10530 100644
--- a/filter/source/msfilter/msdffimp.cxx
+++ b/filter/source/msfilter/msdffimp.cxx
@@ -3316,13 +3316,13 @@ void SvxMSDffManager::SetModel(SdrModel* pModel, long nApplicationScale)
 sal_Bool SvxMSDffManager::SeekToShape( SvStream& rSt, void* /* pClientData */, sal_uInt32 nId ) const
 {
     sal_Bool bRet = sal_False;
-    if ( mpFidcls )
+    if ( !maFidcls.empty() )
     {
         sal_uInt32 nMerk = rSt.Tell();
         sal_uInt32 nShapeId, nSec = ( nId >> 10 ) - 1;
         if ( nSec < mnIdClusters )
         {
-            OffsetMap::const_iterator it = maDgOffsetTable.find( mpFidcls[ nSec ].dgid );
+            OffsetMap::const_iterator it = maDgOffsetTable.find( maFidcls[ nSec ].dgid );
             if ( it != maDgOffsetTable.end() )
             {
                 sal_IntPtr nOfs = it->second;
@@ -5747,7 +5747,6 @@ SvxMSDffManager::SvxMSDffManager(SvStream& rStCtrl_,
      nGroupShapeFlags(0),                   //ensure initialization here, as some corrupted
                                             //files may yield to this being unitialized
      maBaseURL( rBaseURL ),
-     mpFidcls( NULL ),
      rStCtrl(  rStCtrl_  ),
      pStData(  pStData_  ),
      pStData2( pStData2_ ),
@@ -5792,7 +5791,6 @@ SvxMSDffManager::SvxMSDffManager( SvStream& rStCtrl_, const String& rBaseURL )
      nBLIPCount(  USHRT_MAX ),              // mit Error initialisieren, da wir erst pruefen,
      nShapeCount( USHRT_MAX ),              // ob Kontroll-Stream korrekte Daten enthaellt
      maBaseURL( rBaseURL ),
-     mpFidcls( NULL ),
      rStCtrl(  rStCtrl_  ),
      pStData( 0 ),
      pStData2( 0 ),
@@ -5810,7 +5808,6 @@ SvxMSDffManager::~SvxMSDffManager()
     delete pShapeInfos;
     delete pShapeOrders;
     delete pFormModel;
-    delete[] mpFidcls;
 }
 
 void SvxMSDffManager::InitSvxMSDffManager( sal_uInt32 nOffsDgg_, SvStream* pStData_, sal_uInt32 nOleConvFlags )
@@ -5884,17 +5881,11 @@ void SvxMSDffManager::GetFidclData( sal_uInt32 nOffsDggL )
                         "escher", "FIDCL list longer than remaining bytes, ppt or parser is wrong");
                     mnIdClusters = std::min(nMaxEntriesPossible, static_cast<sal_Size>(mnIdClusters));
 
-                    sal_Size nMaxEntriesAllocatable = SAL_MAX_UINT32 / sizeof(FIDCL);
-                    SAL_WARN_IF(nMaxEntriesAllocatable < mnIdClusters,
-                        "escher", "FIDCL list longer than can be allocated");
-                    mnIdClusters = std::min(nMaxEntriesAllocatable, static_cast<sal_Size>(mnIdClusters));
-
-                    mpFidcls = new FIDCL[ mnIdClusters ];
-                    memset(mpFidcls, 0, mnIdClusters * sizeof(FIDCL));
+                    maFidcls.resize(mnIdClusters);
                     for (sal_uInt32 i = 0; i < mnIdClusters; ++i)
                     {
-                        rStCtrl >> mpFidcls[ i ].dgid
-                                >> mpFidcls[ i ].cspidCur;
+                        rStCtrl >> maFidcls[ i ].dgid
+                                >> maFidcls[ i ].cspidCur;
                     }
                 }
             }
diff --git a/filter/source/msfilter/svdfppt.cxx b/filter/source/msfilter/svdfppt.cxx
index 8e24fcf..dfe4400 100644
--- a/filter/source/msfilter/svdfppt.cxx
+++ b/filter/source/msfilter/svdfppt.cxx
@@ -1250,8 +1250,8 @@ SdrObject* SdrEscherImport::ProcessObj( SvStream& rSt, DffObjData& rObjData, voi
             if ( rPersistEntry.nDrawingDgId != 0xffffffff )
             {
                 sal_uInt32 nSec = ( rObjData.nShapeId >> 10 ) - 1;
-                if ( mpFidcls && ( nSec < mnIdClusters ) )
-                    mpFidcls[ nSec ].dgid = rPersistEntry.nDrawingDgId; // insert the correct drawing id;
+                if ( !maFidcls.empty() && ( nSec < mnIdClusters ) )
+                    maFidcls[ nSec ].dgid = rPersistEntry.nDrawingDgId; // insert the correct drawing id;
             }
         }
         if ( GetPropertyValue( DFF_Prop_fNoFillHitTest ) & 0x10 )
commit b686bab2e39216f5b1df9f7fb77099fec6d2f611
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Thu May 24 17:18:46 2012 +0100

    WaE: return value of fwrite unchecked
    
    Change-Id: I83ecc3ef45eb411741db4b4ff20982bff1709d99

diff --git a/extensions/source/plugin/unx/npnapi.cxx b/extensions/source/plugin/unx/npnapi.cxx
index 3e41dd5..8a9ce45 100644
--- a/extensions/source/plugin/unx/npnapi.cxx
+++ b/extensions/source/plugin/unx/npnapi.cxx
@@ -871,7 +871,8 @@ IMPL_LINK( PluginConnector, WorkOnNewMessageHdl, Mediator*, /*pMediator*/ )
             break;
             case eNPP_Shutdown:
             {
-                write( wakeup_fd[1], "xxxx", 4 );
+                bool bSuccess = (4 == write(wakeup_fd[1], "xxxx", 4));
+                SAL_WARN_IF( !bSuccess, "extensions", "short write");
             }
             break;
             default:
diff --git a/extensions/source/plugin/unx/npwrap.cxx b/extensions/source/plugin/unx/npwrap.cxx
index f6d00a2..514c92a 100644
--- a/extensions/source/plugin/unx/npwrap.cxx
+++ b/extensions/source/plugin/unx/npwrap.cxx
@@ -65,7 +65,8 @@ static long GlobalConnectionLostHdl( void* /*pInst*/, void* /*pArg*/ )
 {
     medDebug( 1, "pluginapp exiting due to connection lost\n" );
 
-    write( wakeup_fd[1], "xxxx", 4 );
+    bool bSuccess = (4 == write(wakeup_fd[1], "xxxx", 4 ));
+    SAL_WARN_IF( !bSuccess, "extensions", "short write");
     return 0;
 }
 
@@ -111,7 +112,8 @@ extern "C"
 IMPL_LINK( PluginConnector, NewMessageHdl, Mediator*, /*pMediator*/ )
 {
     medDebug( 1, "new message handler\n" );
-    write( wakeup_fd[1], "cccc", 4 );
+    bool bSuccess = (4 == write(wakeup_fd[1], "cccc", 4));
+    SAL_WARN_IF( !bSuccess, "extensions", "short write");
     return 0;
 
 }
commit d785059238abf7ee28aec1b6555dcd38c5b6c61f
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Thu May 24 16:37:17 2012 +0100

    WaE: nPos potentially uninitialized with gcc 4.7.0
    
    Change-Id: Ie02cf6154b7536a46cd3753c526f7c390e57a40e

diff --git a/vcl/source/window/menu.cxx b/vcl/source/window/menu.cxx
index 04619eb..3f695bd 100644
--- a/vcl/source/window/menu.cxx
+++ b/vcl/source/window/menu.cxx
@@ -3563,7 +3563,7 @@ void PopupMenu::SelectEntry( sal_uInt16 nId )
     {
         if( nId != ITEMPOS_INVALID )
         {
-            size_t nPos;
+            size_t nPos = 0;
             MenuItemData* pData = GetItemList()->GetData( nId, nPos );
             if ( pData->pSubMenu )
                 ImplGetFloatingWindow()->ChangeHighlightItem( nPos, sal_True );
commit cf9b0830c5e574d6c4a16ea2a179720dde26e811
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Thu May 24 16:36:54 2012 +0100

    WaE: return value of fwrite unchecked
    
    Change-Id: Ib3713290a7dcd4bbbb58232d144e35694653a4a5

diff --git a/rsc/source/tools/rsctools.cxx b/rsc/source/tools/rsctools.cxx
index 70ef441..bda03a4 100644
--- a/rsc/source/tools/rsctools.cxx
+++ b/rsc/source/tools/rsctools.cxx
@@ -145,20 +145,20 @@ sal_Bool Append(FILE * fDest, const rtl::OString &rTmpFile)
             fclose( fSource );
         return sal_False;
     }
-    else
-    {
-        char szBuf[ MAX_BUF ];
-        int nItems;
 
-        do //appemd
-        {
-            nItems = fread( szBuf, sizeof( char ), MAX_BUF, fSource );
-            fwrite( szBuf, sizeof( char ), nItems, fDest );
-        } while( MAX_BUF == nItems );
+    bool bSuccess = true;
+    char szBuf[ MAX_BUF ];
+    size_t nItems;
 
-        fclose( fSource );
-    };
-    return sal_True;
+    do //appemd
+    {
+        nItems = fread( szBuf, 1, MAX_BUF, fSource );
+        bSuccess = (nItems == fwrite(szBuf, 1, nItems, fDest));
+        SAL_WARN_IF(!bSuccess, "rsc", "short write");
+    } while (MAX_BUF == nItems && bSuccess);
+
+    fclose( fSource );
+    return bSuccess;
 }
 
 sal_Bool Append(const rtl::OString &rOutputSrs, const rtl::OString &rTmpFile)
commit 268ddf96756be5a850645f0c67e91cf7369a77f4
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Thu May 24 16:36:32 2012 +0100

    WaE: pesky aliasing warning with gcc 4.7.0
    
    Change-Id: I78675ba624cf657a246f7d1211bf5075189ac873

diff --git a/testtools/source/bridgetest/bridgetest.cxx b/testtools/source/bridgetest/bridgetest.cxx
index f6d63bb..940be00 100644
--- a/testtools/source/bridgetest/bridgetest.cxx
+++ b/testtools/source/bridgetest/bridgetest.cxx
@@ -1066,8 +1066,10 @@ uno_Sequence* cloneSequence(const uno_Sequence* val, const Type& type)
         Type _tElem(pTdElem->pWeakRef);
         for (int i = 0; i < val->nElements; i++)
         {
+            sal_Int8 *pValBuf = (sal_Int8 *)(&val->elements + i * pTdElem->nSize);
+
             uno_Sequence* seq = cloneSequence(
-                *(uno_Sequence**) (&val->elements + i * pTdElem->nSize),
+                *(uno_Sequence**) (pValBuf),
                 _tElem);
             *((uno_Sequence**) pBufCur) = seq;
             pBufCur += pTdElem->nSize;
commit 07edde2ddd309f47ddf5360f7133c181791cb3d0
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Thu May 24 14:15:56 2012 +0100

    check some bounds conditions
    
    Change-Id: Iab2f715b37d9fae816723b84ee1116fd4aff9537

diff --git a/filter/source/msfilter/msdffimp.cxx b/filter/source/msfilter/msdffimp.cxx
index 5b6c86c..c4a6bca 100644
--- a/filter/source/msfilter/msdffimp.cxx
+++ b/filter/source/msfilter/msdffimp.cxx
@@ -5884,6 +5884,11 @@ void SvxMSDffManager::GetFidclData( sal_uInt32 nOffsDggL )
                         "escher", "FIDCL list longer than remaining bytes, ppt or parser is wrong");
                     mnIdClusters = std::min(nMaxEntriesPossible, static_cast<sal_Size>(mnIdClusters));
 
+                    sal_Size nMaxEntriesAllocatable = SAL_MAX_UINT32 / sizeof(FIDCL);
+                    SAL_WARN_IF(nMaxEntriesAllocatable < mnIdClusters,
+                        "escher", "FIDCL list longer than can be allocated");
+                    mnIdClusters = std::min(nMaxEntriesAllocatable, static_cast<sal_Size>(mnIdClusters));
+
                     mpFidcls = new FIDCL[ mnIdClusters ];
                     memset(mpFidcls, 0, mnIdClusters * sizeof(FIDCL));
                     for (sal_uInt32 i = 0; i < mnIdClusters; ++i)
commit 1504284cedc64165462663be0e1d8a6624b78e2d
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Thu May 24 13:37:19 2012 +0100

    tidy SvtDocInfoTable_Impl
    
    Change-Id: Ic354fc145c75eb24aa010627467fae007cfbf024

diff --git a/svtools/source/contnr/templwin.cxx b/svtools/source/contnr/templwin.cxx
index 98cf194..aed37c9 100644
--- a/svtools/source/contnr/templwin.cxx
+++ b/svtools/source/contnr/templwin.cxx
@@ -600,8 +600,8 @@ rtl::OUString SvtDocInfoTable_Impl::GetString( long nId ) const
 
     if ( RESARRAY_INDEX_NOTFOUND != nPos )
         return ResStringArray::GetString( nPos );
-    else
-        return aEmptyString;
+
+    return rtl::OUString();
 }
 
 // class SvtFrameWindow_Impl ---------------------------------------------
diff --git a/svtools/source/contnr/templwin.hxx b/svtools/source/contnr/templwin.hxx
index d945cf7..f2dbf42 100644
--- a/svtools/source/contnr/templwin.hxx
+++ b/svtools/source/contnr/templwin.hxx
@@ -167,9 +167,6 @@ public:
 
 class SvtDocInfoTable_Impl : public ResStringArray
 {
-private:
-    String          aEmptyString;
-
 public:
     SvtDocInfoTable_Impl();
 


More information about the Libreoffice-commits mailing list