filter/inc/filter/msfilter/msdffimp.hxx | 14 + filter/source/graphicfilter/icgm/actimpr.cxx | 10 - filter/source/graphicfilter/icgm/elements.cxx | 33 ---- filter/source/graphicfilter/icgm/elements.hxx | 7 filter/source/msfilter/msdffimp.cxx | 142 ++++++++---------- sw/source/ui/docvw/srcedtw.cxx | 23 +- sw/source/ui/inc/srcedtw.hxx | 7 toolkit/inc/toolkit/helper/unopropertyarrayhelper.hxx | 5 toolkit/source/helper/unopropertyarrayhelper.cxx | 26 +-- writerfilter/inc/resourcemodel/WW8ResourceModel.hxx | 13 + 10 files changed, 130 insertions(+), 150 deletions(-)
New commits: commit a4a7b956dc0ad439b52ef188ba0f4e5bcc215f91 Author: Noel Grandin <noelgran...@gmail.com> Date: Sun Mar 11 13:14:36 2012 +0200 Convert tools/table.hxx usage to std::set in toolkit module in UnoPropertyArrayHelper class diff --git a/toolkit/inc/toolkit/helper/unopropertyarrayhelper.hxx b/toolkit/inc/toolkit/helper/unopropertyarrayhelper.hxx index c109528..8fc5aef 100644 --- a/toolkit/inc/toolkit/helper/unopropertyarrayhelper.hxx +++ b/toolkit/inc/toolkit/helper/unopropertyarrayhelper.hxx @@ -32,9 +32,8 @@ #include <toolkit/dllapi.h> #include <cppuhelper/propshlp.hxx> -#include <tools/table.hxx> - #include <list> +#include <set> #include "toolkit/dllapi.h" // ---------------------------------------------------- @@ -43,7 +42,7 @@ class TOOLKIT_DLLPUBLIC UnoPropertyArrayHelper : public ::cppu::IPropertyArrayHelper { private: - Table maIDs; + std::set<sal_Int32> maIDs; protected: sal_Bool ImplHasProperty( sal_uInt16 nPropId ) const; diff --git a/toolkit/source/helper/unopropertyarrayhelper.cxx b/toolkit/source/helper/unopropertyarrayhelper.cxx index 59403f8..17f518e 100644 --- a/toolkit/source/helper/unopropertyarrayhelper.cxx +++ b/toolkit/source/helper/unopropertyarrayhelper.cxx @@ -29,6 +29,7 @@ #include <toolkit/helper/unopropertyarrayhelper.hxx> #include <toolkit/helper/property.hxx> +#include <map> // ---------------------------------------------------- // class UnoPropertyArrayHelper @@ -39,14 +40,14 @@ UnoPropertyArrayHelper::UnoPropertyArrayHelper( const ::com::sun::star::uno::Seq sal_Int32 nIDs = rIDs.getLength(); const sal_Int32* pIDs = rIDs.getConstArray(); for ( sal_Int32 n = 0; n < nIDs; n++ ) - maIDs.Insert( pIDs[n], (void*)1L ); + maIDs.insert( pIDs[n] ); } UnoPropertyArrayHelper::UnoPropertyArrayHelper( const std::list< sal_uInt16 > &rIDs ) { std::list< sal_uInt16 >::const_iterator iter; for( iter = rIDs.begin(); iter != rIDs.end(); ++iter) - maIDs.Insert( *iter, (void*)1L); + maIDs.insert( *iter ); } sal_Bool UnoPropertyArrayHelper::ImplHasProperty( sal_uInt16 nPropId ) const @@ -54,7 +55,7 @@ sal_Bool UnoPropertyArrayHelper::ImplHasProperty( sal_uInt16 nPropId ) const if ( ( nPropId >= BASEPROPERTY_FONTDESCRIPTORPART_START ) && ( nPropId <= BASEPROPERTY_FONTDESCRIPTORPART_END ) ) nPropId = BASEPROPERTY_FONTDESCRIPTOR; - return maIDs.Get( nPropId ) ? sal_True : sal_False; + return maIDs.find( nPropId ) != maIDs.end() ? sal_True : sal_False; } // ::cppu::IPropertyArrayHelper @@ -76,29 +77,28 @@ sal_Bool UnoPropertyArrayHelper::fillPropertyMembersByHandle( ::rtl::OUString * { // Sortiert nach Namen... - Table aSortedPropsIds; - sal_uInt32 nProps = maIDs.Count(); - for ( sal_uInt32 s = 0; s < nProps; s++ ) + std::map<sal_Int32, sal_uInt16> aSortedPropsIds; + for( std::set<sal_Int32>::const_iterator it = maIDs.begin(); it != maIDs.end(); ++it) { - sal_uInt16 nId = sal::static_int_cast< sal_uInt16 >( - maIDs.GetObjectKey( s )); - aSortedPropsIds.Insert( 1+GetPropertyOrderNr( nId ), (void*)(sal_uIntPtr)nId ); + sal_uInt16 nId = sal::static_int_cast< sal_uInt16 >(*it); + aSortedPropsIds[ 1+GetPropertyOrderNr( nId ) ] = nId; if ( nId == BASEPROPERTY_FONTDESCRIPTOR ) { // Einzelproperties... for ( sal_uInt16 i = BASEPROPERTY_FONTDESCRIPTORPART_START; i <= BASEPROPERTY_FONTDESCRIPTORPART_END; i++ ) - aSortedPropsIds.Insert( 1+GetPropertyOrderNr( i ), (void*)(sal_uIntPtr)i ); + aSortedPropsIds[ 1+GetPropertyOrderNr( i ) ] = i; } } - nProps = aSortedPropsIds.Count(); // koennen jetzt mehr sein + sal_uInt32 nProps = aSortedPropsIds.size(); // koennen jetzt mehr sein ::com::sun::star::uno::Sequence< ::com::sun::star::beans::Property> aProps( nProps ); ::com::sun::star::beans::Property* pProps = aProps.getArray(); - for ( sal_uInt32 n = 0; n < nProps; n++ ) + std::map<sal_Int32, sal_uInt16>::const_iterator it = aSortedPropsIds.begin(); + for ( sal_uInt32 n = 0; n < nProps; n++, ++it ) { - sal_uInt16 nId = (sal_uInt16)(sal_uLong)aSortedPropsIds.GetObject( n ); + sal_uInt16 nId = it->second; pProps[n].Name = GetPropertyName( nId ); pProps[n].Handle = nId; pProps[n].Type = *GetPropertyType( nId ); commit aa998adbe3f7132998ba5aff438b540ff18a10bb Author: Noel Grandin <noelgran...@gmail.com> Date: Sun Mar 11 20:50:15 2012 +0200 Convert tools/table.hxx to std::set in SwSrcEditWindow in SW module diff --git a/sw/source/ui/docvw/srcedtw.cxx b/sw/source/ui/docvw/srcedtw.cxx index 9bd534c..2ffd918 100644 --- a/sw/source/ui/docvw/srcedtw.cxx +++ b/sw/source/ui/docvw/srcedtw.cxx @@ -595,7 +595,6 @@ IMPL_LINK( SwSrcEditWindow, SyntaxTimerHdl, Timer *, pTimer ) SAL_WARN_IF(pTextView == 0, "sw", "No View yet, but syntax highlighting?!"); bHighlighting = sal_True; - sal_uInt16 nLine; sal_uInt16 nCount = 0; // at first the region around the cursor is processed TextSelection aSel = pTextView->GetSelection(); @@ -604,16 +603,15 @@ IMPL_LINK( SwSrcEditWindow, SyntaxTimerHdl, Timer *, pTimer ) nCur -= 40; else nCur = 0; - if(aSyntaxLineTable.Count()) + if(!aSyntaxLineTable.empty()) for(sal_uInt16 i = 0; i < 80 && nCount < 40; i++, nCur++) { - void * p = aSyntaxLineTable.Get(nCur); - if(p) + if(aSyntaxLineTable.find(nCur) != aSyntaxLineTable.end()) { DoSyntaxHighlight( nCur ); - aSyntaxLineTable.Remove( nCur ); + aSyntaxLineTable.erase( nCur ); nCount++; - if(!aSyntaxLineTable.Count()) + if(aSyntaxLineTable.empty()) break; if((Time( Time::SYSTEM ).GetTime() - aSyntaxCheckStart.GetTime()) > MAX_HIGHLIGHTTIME ) { @@ -624,14 +622,11 @@ IMPL_LINK( SwSrcEditWindow, SyntaxTimerHdl, Timer *, pTimer ) } // when there is still anything left by then, go on from the beginning - void* p = aSyntaxLineTable.First(); - while ( p && nCount < MAX_SYNTAX_HIGHLIGHT) + while ( !aSyntaxLineTable.empty() && nCount < MAX_SYNTAX_HIGHLIGHT) { - nLine = (sal_uInt16)aSyntaxLineTable.GetCurKey(); + sal_uInt16 nLine = *aSyntaxLineTable.begin(); DoSyntaxHighlight( nLine ); - sal_uInt16 nCurKey = (sal_uInt16)aSyntaxLineTable.GetCurKey(); - p = aSyntaxLineTable.Next(); - aSyntaxLineTable.Remove(nCurKey); + aSyntaxLineTable.erase(nLine); nCount ++; if(Time( Time::SYSTEM ).GetTime() - aSyntaxCheckStart.GetTime() > MAX_HIGHLIGHTTIME) { @@ -640,7 +635,7 @@ IMPL_LINK( SwSrcEditWindow, SyntaxTimerHdl, Timer *, pTimer ) } } - if(aSyntaxLineTable.Count() && !pTimer->IsActive()) + if(!aSyntaxLineTable.empty() && !pTimer->IsActive()) pTimer->Start(); // SyntaxTimerHdl is called when text changed // => good opportunity to determine text width! @@ -681,7 +676,7 @@ void SwSrcEditWindow::DoDelayedSyntaxHighlight( sal_uInt16 nPara ) { if ( !bHighlighting && bDoSyntaxHighlight ) { - aSyntaxLineTable.Insert( nPara, (void*)(sal_uInt16)1 ); + aSyntaxLineTable.insert( nPara ); aSyntaxIdleTimer.Start(); } } diff --git a/sw/source/ui/inc/srcedtw.hxx b/sw/source/ui/inc/srcedtw.hxx index 3439b19..8f4a443 100644 --- a/sw/source/ui/inc/srcedtw.hxx +++ b/sw/source/ui/inc/srcedtw.hxx @@ -32,8 +32,8 @@ #include <svl/lstner.hxx> #include <vcl/timer.hxx> -#include <tools/table.hxx> #include <svtools/xtextedt.hxx> +#include <set> namespace com { namespace sun { namespace star { namespace beans { class XMultiPropertySet; @@ -68,12 +68,13 @@ public: }; //------------------------------------------------------------ +typedef std::set<sal_uInt16> SyntaxLineSet; + class SwSrcEditWindow : public Window, public SfxListener { private: class ChangesListener; friend class ChangesListener; - ExtTextView* pTextView; ExtTextEngine* pTextEngine; @@ -96,7 +97,7 @@ private: sal_Bool bHighlighting; Timer aSyntaxIdleTimer; - Table aSyntaxLineTable; + SyntaxLineSet aSyntaxLineTable; void ImpDoHighlight( const String& rSource, sal_uInt16 nLineOff ); commit 64cba6e58263e906aba6a110937f362d1e31ebe5 Author: Noel Grandin <n...@peralex.com> Date: Fri Mar 9 14:06:18 2012 +0200 Convert tools/table.hxx to std::map in CGMElements class diff --git a/filter/source/graphicfilter/icgm/actimpr.cxx b/filter/source/graphicfilter/icgm/actimpr.cxx index 381135e..3945451 100644 --- a/filter/source/graphicfilter/icgm/actimpr.cxx +++ b/filter/source/graphicfilter/icgm/actimpr.cxx @@ -337,17 +337,17 @@ void CGMImpressOutAct::ImplSetFillBundle() aHatch.Color = nFillColor; else aHatch.Color = nFillColor; - HatchEntry* pHatchEntry = (HatchEntry*)mpCGM->pElement->aHatchTable.Get( nHatchIndex ); - if ( pHatchEntry ) + if ( mpCGM->pElement->maHatchMap.find( nHatchIndex ) != mpCGM->pElement->maHatchMap.end() ) { - switch ( pHatchEntry->HatchStyle ) + HatchEntry& rHatchEntry = mpCGM->pElement->maHatchMap[ nHatchIndex ]; + switch ( rHatchEntry.HatchStyle ) { case 0 : aHatch.Style = drawing::HatchStyle_SINGLE; break; case 1 : aHatch.Style = drawing::HatchStyle_DOUBLE; break; case 2 : aHatch.Style = drawing::HatchStyle_TRIPLE; break; } - aHatch.Distance = pHatchEntry->HatchDistance; - aHatch.Angle = pHatchEntry->HatchAngle; + aHatch.Distance = rHatchEntry.HatchDistance; + aHatch.Angle = rHatchEntry.HatchAngle; } else { diff --git a/filter/source/graphicfilter/icgm/elements.cxx b/filter/source/graphicfilter/icgm/elements.cxx index 9bf4b85..a3f5892 100644 --- a/filter/source/graphicfilter/icgm/elements.cxx +++ b/filter/source/graphicfilter/icgm/elements.cxx @@ -42,7 +42,6 @@ CGMElements::CGMElements( CGM& rCGM ) : CGMElements::~CGMElements() { - DeleteTable( aHatchTable ); DeleteAllBundles( aLineList ); DeleteAllBundles( aMarkerList ); DeleteAllBundles( aEdgeList ); @@ -144,14 +143,7 @@ CGMElements& CGMElements::operator=( CGMElements& rSource ) eTransparency = rSource.eTransparency; nAuxiliaryColor = rSource.nAuxiliaryColor; - DeleteTable( aHatchTable ); - HatchEntry* pSource = (HatchEntry*)rSource.aHatchTable.First(); - while ( pSource ) - { - sal_uInt32 nKey = rSource.aHatchTable.GetKey( pSource ); - aHatchTable.Insert( nKey, new HatchEntry( *pSource ) ); - pSource = (HatchEntry*)rSource.aHatchTable.Next(); - } + maHatchMap = rSource.maHatchMap; bSegmentCount = rSource.bSegmentCount; return (*this); } @@ -304,25 +296,10 @@ void CGMElements::Init() void CGMElements::ImplInsertHatch( sal_Int32 nKey, int nStyle, long nDistance, long nAngle ) { - HatchEntry* pHatchEntry; - pHatchEntry = new HatchEntry; - aHatchTable.Insert( (sal_uInt32)nKey, pHatchEntry ); - pHatchEntry->HatchStyle = nStyle; - pHatchEntry->HatchDistance = nDistance; - pHatchEntry->HatchAngle = nAngle; -} - -// --------------------------------------------------------------- - -void CGMElements::DeleteTable( Table& rTable ) -{ - HatchEntry* pPtr = (HatchEntry*)rTable.First(); - while ( pPtr ) - { - delete pPtr; - pPtr = (HatchEntry*)rTable.Next(); - } - rTable.Clear(); + HatchEntry& rEntry = maHatchMap[nKey]; + rEntry.HatchStyle = nStyle; + rEntry.HatchDistance = nDistance; + rEntry.HatchAngle = nAngle; } // --------------------------------------------------------------- diff --git a/filter/source/graphicfilter/icgm/elements.hxx b/filter/source/graphicfilter/icgm/elements.hxx index c378ac5..3969601 100644 --- a/filter/source/graphicfilter/icgm/elements.hxx +++ b/filter/source/graphicfilter/icgm/elements.hxx @@ -29,12 +29,14 @@ #define CGM_ELEMENTS_HXX_ #include "main.hxx" -#include <tools/table.hxx> +#include "cgmtypes.hxx" #include <vector> +#include <map> #define nBackGroundColor aColorTable[ 0 ] typedef ::std::vector< Bundle* > BundleList; +typedef ::std::map<sal_uInt32, HatchEntry> HatchMap; class CGMElements { @@ -124,7 +126,7 @@ class CGMElements FillBundle aFillBundle; BundleList aFillList; FloatPoint aFillRefPoint; - Table aHatchTable; + HatchMap maHatchMap; Transparency eTransparency; @@ -137,7 +139,6 @@ class CGMElements ~CGMElements(); CGMElements& operator=( CGMElements& ); void Init(); - void DeleteTable( Table& ); Bundle* GetBundleIndex( long nIndex, BundleList&, Bundle& ); Bundle* GetBundle( BundleList& rList, long nIndex ); Bundle* InsertBundle( BundleList&, Bundle& ); commit f1bd21bdbb07879f9337d2da2ef1a02792a76369 Author: Noel Grandin <n...@peralex.com> Date: Fri Mar 9 17:20:15 2012 +0200 Converts from tools/table.hxx to std::map in DffPropSet class in filter module diff --git a/filter/inc/filter/msfilter/msdffimp.hxx b/filter/inc/filter/msfilter/msdffimp.hxx index c8edec0..3366a9c 100644 --- a/filter/inc/filter/msfilter/msdffimp.hxx +++ b/filter/inc/filter/msfilter/msdffimp.hxx @@ -35,7 +35,6 @@ #include <svl/svarray.hxx> #include <tools/color.hxx> #include <tools/gen.hxx> -#include <tools/table.hxx> #include <svx/msdffdef.hxx> #include <vcl/graph.hxx> #include <string.h> @@ -106,10 +105,17 @@ struct DffPropFlags class SvxMSDffManager; -class MSFILTER_DLLPUBLIC DffPropSet : public Table +class MSFILTER_DLLPUBLIC DffPropSet { +private: + void InitializeProp(sal_uInt32 nKey, sal_uInt32 nContent, + DffPropFlags& rFlags, sal_uInt32 nRecordType) const; + protected: +typedef std::map<sal_uInt32, sal_uInt32> RecordTypesMap; + + RecordTypesMap maRecordTypes; sal_uInt32 mpContents[ 1024 ]; DffPropFlags mpFlags[ 1024 ]; @@ -466,12 +472,14 @@ class MSFILTER_DLLPUBLIC SvxMSDffManager : public DffPropertyReader protected : +typedef std::map<sal_uInt32, sal_uInt32> OffsetMap; + String maBaseURL; 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; - Table maDgOffsetTable; // array of fileoffsets + OffsetMap maDgOffsetTable; // array of fileoffsets friend class DffPropertyReader; diff --git a/filter/source/msfilter/msdffimp.cxx b/filter/source/msfilter/msdffimp.cxx index 176d630..80785fa 100644 --- a/filter/source/msfilter/msdffimp.cxx +++ b/filter/source/msfilter/msdffimp.cxx @@ -261,7 +261,7 @@ SvStream& operator>>( SvStream& rIn, DffPropSet& rRec ) // set flags that have to be set rRec.mpContents[ nRecType ] |= nContent; nContentEx |= ( nContent >> 16 ); - rRec.Replace( nRecType, (void*)(sal_uIntPtr)nContentEx ); + rRec.maRecordTypes[ nRecType ] = nContentEx; } else { @@ -320,7 +320,7 @@ SvStream& operator>>( SvStream& rIn, DffPropSet& rRec ) } rRec.mpContents[ nRecType ] = nContent; rRec.mpFlags[ nRecType ] = aPropFlag; - rRec.Insert( nRecType, (void*)(sal_uIntPtr)nContentEx ); + rRec.maRecordTypes[ nRecType ] = nContentEx; } } aHd.SeekToEndOfRecord( rIn ); @@ -357,77 +357,59 @@ void DffPropSet::InitializePropSet() const everything else) */ - memset( ( (DffPropSet*) this )->mpFlags, 0, 0x400 * sizeof(DffPropFlags) ); - ( (DffPropSet*) this )->Clear(); + DffPropSet* self = (DffPropSet*) this; + memset( self->mpFlags, 0, 0x400 * sizeof(DffPropFlags) ); + self->maRecordTypes.clear(); DffPropFlags nFlags = { 1, 0, 0, 1 }; - ( (DffPropSet*) this )->mpContents[ DFF_Prop_LockAgainstGrouping ] = 0x0000; //0x01ff0000; - ( (DffPropSet*) this )->mpFlags[ DFF_Prop_LockAgainstGrouping ] = nFlags; - ( (DffPropSet*) this )->Insert( DFF_Prop_LockAgainstGrouping, (void*)0xffff0000 ); - - ( (DffPropSet*) this )->mpContents[ DFF_Prop_FitTextToShape ] = 0x0010; //0x001f0010; - ( (DffPropSet*) this )->mpFlags[ DFF_Prop_FitTextToShape ] = nFlags; - ( (DffPropSet*) this )->Insert( DFF_Prop_FitTextToShape, (void*)0xffff0000 ); - - ( (DffPropSet*) this )->mpContents[ DFF_Prop_gtextFStrikethrough ] = 0x0000; //0xffff0000; - ( (DffPropSet*) this )->mpFlags[ DFF_Prop_gtextFStrikethrough ] = nFlags; - ( (DffPropSet*) this )->Insert( DFF_Prop_gtextFStrikethrough, (void*)0xffff0000 ); - - ( (DffPropSet*) this )->mpContents[ DFF_Prop_pictureActive ] = 0x0000; //0x000f0000; - ( (DffPropSet*) this )->mpFlags[ DFF_Prop_pictureActive ] = nFlags; - ( (DffPropSet*) this )->Insert( DFF_Prop_pictureActive, (void*)0xffff0000 ); - - ( (DffPropSet*) this )->mpContents[ DFF_Prop_fFillOK ] = 0x0039; //0x003f0039; - ( (DffPropSet*) this )->mpFlags[ DFF_Prop_fFillOK ] = nFlags; - ( (DffPropSet*) this )->Insert( DFF_Prop_fFillOK, (void*)0xffff0000 ); - - ( (DffPropSet*) this )->mpContents[ DFF_Prop_fNoFillHitTest ] = 0x001c; //0x001f001c; - ( (DffPropSet*) this )->mpFlags[ DFF_Prop_fNoFillHitTest ] = nFlags; - ( (DffPropSet*) this )->Insert( DFF_Prop_fNoFillHitTest, (void*)0xffff0000 ); - - ( (DffPropSet*) this )->mpContents[ DFF_Prop_fNoLineDrawDash ] = 0x001e; //0x001f000e; - ( (DffPropSet*) this )->mpFlags[ DFF_Prop_fNoLineDrawDash ] = nFlags; - ( (DffPropSet*) this )->Insert( DFF_Prop_fNoLineDrawDash, (void*)0xffff0000 ); - - ( (DffPropSet*) this )->mpContents[ DFF_Prop_fshadowObscured ] = 0x0000; //0x00030000; - ( (DffPropSet*) this )->mpFlags[ DFF_Prop_fshadowObscured ] = nFlags; - ( (DffPropSet*) this )->Insert( DFF_Prop_fshadowObscured, (void*)0xffff0000 ); - - ( (DffPropSet*) this )->mpContents[ DFF_Prop_fPerspective ] = 0x0000; //0x00010000; - ( (DffPropSet*) this )->mpFlags[ DFF_Prop_fPerspective ] = nFlags; - ( (DffPropSet*) this )->Insert( DFF_Prop_fPerspective, (void*)0xffff0000 ); - - ( (DffPropSet*) this )->mpContents[ DFF_Prop_fc3DLightFace ] = 0x0001; //0x000f0001; - ( (DffPropSet*) this )->mpFlags[ DFF_Prop_fc3DLightFace ] = nFlags; - ( (DffPropSet*) this )->Insert( DFF_Prop_fc3DLightFace, (void*)0xffff0000 ); - - ( (DffPropSet*) this )->mpContents[ DFF_Prop_fc3DFillHarsh ] = 0x0016; //0x001f0016; - ( (DffPropSet*) this )->mpFlags[ DFF_Prop_fc3DFillHarsh ] = nFlags; - ( (DffPropSet*) this )->Insert( DFF_Prop_fc3DFillHarsh, (void*)0xffff0000 ); - - ( (DffPropSet*) this )->mpContents[ DFF_Prop_fBackground ] = 0x0000; //0x001f0000; - ( (DffPropSet*) this )->mpFlags[ DFF_Prop_fBackground ] = nFlags; - ( (DffPropSet*) this )->Insert( DFF_Prop_fBackground, (void*)0xffff0000 ); - - ( (DffPropSet*) this )->mpContents[ DFF_Prop_fCalloutLengthSpecified ] = 0x0010; //0x00ef0010; - ( (DffPropSet*) this )->mpFlags[ DFF_Prop_fCalloutLengthSpecified ] = nFlags; - ( (DffPropSet*) this )->Insert( DFF_Prop_fCalloutLengthSpecified, (void*)0xffff0000 ); - - ( (DffPropSet*) this )->mpContents[ DFF_Prop_fPrint ] = 0x0001; //0x00ef0001; - ( (DffPropSet*) this )->mpFlags[ DFF_Prop_fPrint ] = nFlags; - ( (DffPropSet*) this )->Insert( DFF_Prop_fPrint, (void*)0xffff0000 ); + //0x01ff0000; + InitializeProp( DFF_Prop_LockAgainstGrouping, 0x0000, nFlags, 0xffff0000 ); + //0x001f0010; + InitializeProp( DFF_Prop_FitTextToShape, 0x0010, nFlags, 0xffff0000 ); + //0xffff0000; + InitializeProp( DFF_Prop_gtextFStrikethrough, 0x0000, nFlags, 0xffff0000 ); + //0x000f0000; + InitializeProp( DFF_Prop_pictureActive, 0x0000, nFlags, 0xffff0000 ); + //0x003f0039; + InitializeProp( DFF_Prop_fFillOK, 0x0039, nFlags, 0xffff0000 ); + //0x001f001c; + InitializeProp( DFF_Prop_fNoFillHitTest, 0x001c, nFlags, 0xffff0000 ); + //0x001f000e; + InitializeProp( DFF_Prop_fNoLineDrawDash, 0x001e, nFlags, 0xffff0000 ); + //0x00030000; + InitializeProp( DFF_Prop_fshadowObscured, 0x0000, nFlags, 0xffff0000 ); + //0x00010000; + InitializeProp( DFF_Prop_fPerspective, 0x0000, nFlags, 0xffff0000 ); + //0x000f0001; + InitializeProp( DFF_Prop_fc3DLightFace, 0x0001, nFlags, 0xffff0000 ); + //0x001f0016; + InitializeProp( DFF_Prop_fc3DFillHarsh, 0x0016, nFlags, 0xffff0000 ); + //0x001f0000; + InitializeProp( DFF_Prop_fBackground, 0x0000, nFlags, 0xffff0000 ); + //0x00ef0010; + InitializeProp( DFF_Prop_fCalloutLengthSpecified, 0x0010, nFlags, 0xffff0000 ); + //0x00ef0001; + InitializeProp( DFF_Prop_fPrint, 0x0001, nFlags, 0xffff0000 ); + + InitializeProp( DFF_Prop_fillColor, 0xffffff, nFlags, 0xffff0000 ); +} - ( (DffPropSet*) this )->mpContents[ DFF_Prop_fillColor ] = 0xffffff; - ( (DffPropSet*) this )->mpFlags[ DFF_Prop_fillColor ] = nFlags; - ( (DffPropSet*) this )->Insert( DFF_Prop_fillColor, (void*)0xffff0000 ); +void DffPropSet::InitializeProp(sal_uInt32 nKey, sal_uInt32 nContent, DffPropFlags& rFlags, sal_uInt32 nRecordType ) const +{ + DffPropSet* self = (DffPropSet*) this; + self->mpContents[ nKey ] = nContent; + self->mpFlags[ nKey ] = rFlags; + self->maRecordTypes[ nKey ] = nRecordType; } + void DffPropSet::Merge( DffPropSet& rMaster ) const { - for ( void* pDummy = rMaster.First(); pDummy; pDummy = rMaster.Next() ) + for ( RecordTypesMap::const_iterator it = rMaster.maRecordTypes.begin(); + it != rMaster.maRecordTypes.end(); ++it ) { - sal_uInt32 nRecType = rMaster.GetCurKey(); + sal_uInt32 nRecType = it->first; if ( ( nRecType & 0x3f ) == 0x3f ) // this is something called FLAGS { sal_uInt32 nCurrentFlags = mpContents[ nRecType ]; @@ -441,10 +423,11 @@ void DffPropSet::Merge( DffPropSet& rMaster ) const ( (DffPropSet*) this )->mpContents[ nRecType ] = nCurrentFlags; - sal_uInt32 nNewContentEx = (sal_uInt32)(sal_uIntPtr)rMaster.GetCurObject(); - if ( ((DffPropSet*)this)->Seek( nRecType ) ) - nNewContentEx |= (sal_uInt32)(sal_uIntPtr)GetCurObject(); - ( (DffPropSet*) this )->Replace( nRecType, (void*)(sal_uIntPtr)nNewContentEx ); + sal_uInt32 nNewContentEx = it->second; + RecordTypesMap::const_iterator it2 = maRecordTypes.find( nRecType ); + if ( it2 != maRecordTypes.end() ) + nNewContentEx |= it2->second; + ( (DffPropSet*) this )->maRecordTypes[ nRecType ] = nNewContentEx; } else { @@ -454,7 +437,7 @@ void DffPropSet::Merge( DffPropSet& rMaster ) const DffPropFlags nFlags( rMaster.mpFlags[ nRecType ] ); nFlags.bSoftAttr = sal_True; ( (DffPropSet*) this )->mpFlags[ nRecType ] = nFlags; - ( (DffPropSet*) this )->Insert( nRecType, pDummy ); + ( (DffPropSet*) this )->maRecordTypes[ nRecType ] = it->second; } } } @@ -466,9 +449,10 @@ sal_Bool DffPropSet::IsHardAttribute( sal_uInt32 nId ) const nId &= 0x3ff; if ( ( nId & 0x3f ) >= 48 ) // is this a flag id { - if ( ((DffPropSet*)this)->Seek( nId | 0x3f ) ) + RecordTypesMap::const_iterator it = maRecordTypes.find( nId | 0x3f ); + if ( it != maRecordTypes.end() ) { - sal_uInt32 nContentEx = (sal_uInt32)(sal_uIntPtr)GetCurObject(); + sal_uInt32 nContentEx = it->second; bRetValue = ( nContentEx & ( 1 << ( 0xf - ( nId & 0xf ) ) ) ) != 0; } } @@ -525,9 +509,10 @@ sal_Bool DffPropSet::SeekToContent( sal_uInt32 nRecType, SvStream& rStrm ) const { if ( mpFlags[ nRecType ].bComplex ) { - if ( ((DffPropSet*)this)->Seek( nRecType ) ) + RecordTypesMap::const_iterator it = maRecordTypes.find( nRecType ); + if ( it != maRecordTypes.end() ) { - sal_uInt32 nOffset = (sal_uInt32)(sal_uIntPtr)GetCurObject(); + sal_uInt32 nOffset = it->second; if ( nOffset && ( ( nOffset & 0xffff0000 ) != 0xffff0000 ) ) { rStrm.Seek( nOffset ); @@ -2910,9 +2895,9 @@ void DffPropertyReader::ApplyAttributes( SvStream& rIn, SfxItemSet& rSet, const { sal_Bool bHasShadow = sal_False; - for ( void* pDummy = ((DffPropertyReader*)this)->First(); pDummy; pDummy = ((DffPropertyReader*)this)->Next() ) + for ( RecordTypesMap::const_iterator it = maRecordTypes.begin(); it != maRecordTypes.end(); ++it ) { - sal_uInt32 nRecType = GetCurKey(); + sal_uInt32 nRecType = it->first; sal_uInt32 nContent = mpContents[ nRecType ]; switch ( nRecType ) { @@ -3336,9 +3321,10 @@ sal_Bool SvxMSDffManager::SeekToShape( SvStream& rSt, void* /* pClientData */, s sal_uInt32 nShapeId, nSec = ( nId >> 10 ) - 1; if ( nSec < mnIdClusters ) { - sal_IntPtr nOfs = (sal_IntPtr)maDgOffsetTable.Get( mpFidcls[ nSec ].dgid ); - if ( nOfs ) + OffsetMap::const_iterator it = maDgOffsetTable.find( mpFidcls[ nSec ].dgid ); + if ( it != maDgOffsetTable.end() ) { + sal_IntPtr nOfs = it->second; rSt.Seek( nOfs ); DffRecordHeader aEscherF002Hd; rSt >> aEscherF002Hd; @@ -5861,7 +5847,7 @@ void SvxMSDffManager::SetDgContainer( SvStream& rSt ) DffRecordHeader aRecHd; rSt >> aRecHd; sal_uInt32 nDrawingId = aRecHd.nRecInstance; - maDgOffsetTable.Insert( nDrawingId, (void*)(sal_uIntPtr)nFilePos ); + maDgOffsetTable[ nDrawingId ] = nFilePos; rSt.Seek( nFilePos ); } } commit b81955ffe00f8e7137f0cd0aacc1f2970bfc02af Author: Arnaud Versini <arnaud.vers...@gmail.com> Date: Tue Mar 13 20:41:38 2012 +0100 Adding virtual destructor to WW8ResourceModel.hxx classes diff --git a/writerfilter/inc/resourcemodel/WW8ResourceModel.hxx b/writerfilter/inc/resourcemodel/WW8ResourceModel.hxx index 9504b6f..5869f04 100644 --- a/writerfilter/inc/resourcemodel/WW8ResourceModel.hxx +++ b/writerfilter/inc/resourcemodel/WW8ResourceModel.hxx @@ -128,6 +128,9 @@ class Sprm; class WRITERFILTER_RESOURCEMODEL_DLLPUBLIC Properties { public: + + virtual ~Properties() {} + /** Receives an attribute. @@ -152,6 +155,8 @@ class WRITERFILTER_RESOURCEMODEL_DLLPUBLIC Table { public: typedef boost::shared_ptr<Table> Pointer_t; + + virtual ~Table() {} /** Receives an entry of the table. @@ -167,6 +172,8 @@ public: class WRITERFILTER_RESOURCEMODEL_DLLPUBLIC BinaryObj { public: + + virtual ~BinaryObj() {} /** Receives binary data of the object. @@ -184,11 +191,14 @@ public: class WRITERFILTER_RESOURCEMODEL_DLLPUBLIC Stream { public: + /** Pointer to this stream. */ typedef boost::shared_ptr<Stream> Pointer_t; + virtual ~Stream() {} + /** Receives start mark for group with the same section properties. */ @@ -344,6 +354,9 @@ public: typedef auto_ptr<Sprm> Pointer_t; SAL_WNODEPRECATED_DECLARATIONS_POP enum Kind { UNKNOWN, CHARACTER, PARAGRAPH, TABLE }; + + virtual ~Sprm() {} + /** Returns id of the SPRM. */ _______________________________________________ Libreoffice-commits mailing list Libreoffice-commits@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits