include/svx/svdmodel.hxx | 6 ++---- sd/source/ui/dlg/unchss.cxx | 8 ++++---- sd/source/ui/func/fupage.cxx | 2 +- svx/source/sdr/properties/attributeproperties.cxx | 2 +- svx/source/svdraw/svdmodel.cxx | 5 ++--- 5 files changed, 10 insertions(+), 13 deletions(-)
New commits: commit e9f405a0daf1dc47a46cb902f05fe24e095b837d Author: Stephan Bergmann <sberg...@redhat.com> Date: Mon Jun 16 12:00:37 2014 +0200 Clean up SdrModel::MigrateItemSet * No need to support null pNewModel argument (the one call site that did pass in null explicitly in sd/source/ui/func/fupate.cxx can just as well pass in mpDoc, and all existing call sites are guaranteed to pass in a non-null value). * With that changed, SdrModel::MigrateItemSet can be static. (At least in JunitTest_forms_unoapi it could happen that the call from svx/source/sdr/properties/attributeproperites.cxx called MigrateItemSet on a null GetSdrObject.GetModel(), which was undefined behavior even though it was harmless.) Change-Id: Idface48da7e889c6e5768d0e49bc67c88b4c3ec4 diff --git a/include/svx/svdmodel.hxx b/include/svx/svdmodel.hxx index ae32250..a97bf5d 100644 --- a/include/svx/svdmodel.hxx +++ b/include/svx/svdmodel.hxx @@ -645,10 +645,8 @@ public: virtual SvxNumType GetPageNumType() const; /** copies the items from the source set to the destination set. Both sets must have - same ranges but can have different pools. If pNewModel is optional. If it is null, - this model is used. */ - - void MigrateItemSet( const SfxItemSet* pSourceSet, SfxItemSet* pDestSet, SdrModel* pNewModel ); + same ranges but can have different pools. */ + static void MigrateItemSet( const SfxItemSet* pSourceSet, SfxItemSet* pDestSet, SdrModel* pNewModel ); bool IsInDestruction() const { return mbInDestruction;} diff --git a/sd/source/ui/dlg/unchss.cxx b/sd/source/ui/dlg/unchss.cxx index a876559..05a5f02 100644 --- a/sd/source/ui/dlg/unchss.cxx +++ b/sd/source/ui/dlg/unchss.cxx @@ -46,10 +46,10 @@ StyleSheetUndoAction::StyleSheetUndoAction(SdDrawDocument* pTheDoc, // Create ItemSets; Attention, it is possible that the new one is from a, // different pool. Therefore we clone it with its items. pNewSet = new SfxItemSet((SfxItemPool&)SdrObject::GetGlobalDrawObjectItemPool(), pTheNewItemSet->GetRanges()); - pTheDoc->MigrateItemSet( pTheNewItemSet, pNewSet, pTheDoc ); + SdrModel::MigrateItemSet( pTheNewItemSet, pNewSet, pTheDoc ); pOldSet = new SfxItemSet((SfxItemPool&)SdrObject::GetGlobalDrawObjectItemPool(),pStyleSheet->GetItemSet().GetRanges()); - pTheDoc->MigrateItemSet( &pStyleSheet->GetItemSet(), pOldSet, pTheDoc ); + SdrModel::MigrateItemSet( &pStyleSheet->GetItemSet(), pOldSet, pTheDoc ); aComment = SD_RESSTR(STR_UNDO_CHANGE_PRES_OBJECT); OUString aName(pStyleSheet->GetName()); @@ -98,7 +98,7 @@ StyleSheetUndoAction::StyleSheetUndoAction(SdDrawDocument* pTheDoc, void StyleSheetUndoAction::Undo() { SfxItemSet aNewSet( mpDoc->GetItemPool(), pOldSet->GetRanges() ); - mpDoc->MigrateItemSet( pOldSet, &aNewSet, mpDoc ); + SdrModel::MigrateItemSet( pOldSet, &aNewSet, mpDoc ); pStyleSheet->GetItemSet().Set(aNewSet); if( pStyleSheet->GetFamily() == SD_STYLE_FAMILY_PSEUDO ) @@ -111,7 +111,7 @@ void StyleSheetUndoAction::Undo() void StyleSheetUndoAction::Redo() { SfxItemSet aNewSet( mpDoc->GetItemPool(), pOldSet->GetRanges() ); - mpDoc->MigrateItemSet( pNewSet, &aNewSet, mpDoc ); + SdrModel::MigrateItemSet( pNewSet, &aNewSet, mpDoc ); pStyleSheet->GetItemSet().Set(aNewSet); if( pStyleSheet->GetFamily() == SD_STYLE_FAMILY_PSEUDO ) diff --git a/sd/source/ui/func/fupage.cxx b/sd/source/ui/func/fupage.cxx index 9277632..a0bb59f 100644 --- a/sd/source/ui/func/fupage.cxx +++ b/sd/source/ui/func/fupage.cxx @@ -301,7 +301,7 @@ const SfxItemSet* FuPage::ExecuteDialog( Window* pParent ) // MigrateItemSet makes sure the XFillBitmapItem will have a unique name SfxItemSet aMigrateSet( mpDoc->GetPool(), XATTR_FILLBITMAP, XATTR_FILLBITMAP ); aMigrateSet.Put(XFillBitmapItem(OUString("background"), aGraphic)); - mpDoc->MigrateItemSet( &aMigrateSet, pTempSet.get(), NULL ); + SdrModel::MigrateItemSet( &aMigrateSet, pTempSet.get(), mpDoc ); pTempSet->Put( XFillBmpStretchItem( true )); pTempSet->Put( XFillBmpTileItem( false )); diff --git a/svx/source/sdr/properties/attributeproperties.cxx b/svx/source/sdr/properties/attributeproperties.cxx index 2675438..d7665c8 100644 --- a/svx/source/sdr/properties/attributeproperties.cxx +++ b/svx/source/sdr/properties/attributeproperties.cxx @@ -268,7 +268,7 @@ namespace sdr } mpItemSet = mpItemSet->Clone(false, pDestPool); - GetSdrObject().GetModel()->MigrateItemSet(pOldSet, mpItemSet, pNewModel); + SdrModel::MigrateItemSet(pOldSet, mpItemSet, pNewModel); // set stylesheet (if used) if(pStySheet) diff --git a/svx/source/svdraw/svdmodel.cxx b/svx/source/svdraw/svdmodel.cxx index f713087..4b80ef0 100644 --- a/svx/source/svdraw/svdmodel.cxx +++ b/svx/source/svdraw/svdmodel.cxx @@ -20,6 +20,7 @@ #include <svx/svdmodel.hxx> +#include <cassert> #include <math.h> #include <osl/endian.h> @@ -1805,11 +1806,9 @@ void SdrModel::setLock( bool bLock ) void SdrModel::MigrateItemSet( const SfxItemSet* pSourceSet, SfxItemSet* pDestSet, SdrModel* pNewModel ) { + assert(pNewModel != 0); if( pSourceSet && pDestSet && (pSourceSet != pDestSet ) ) { - if( pNewModel == NULL ) - pNewModel = this; - SfxWhichIter aWhichIter(*pSourceSet); sal_uInt16 nWhich(aWhichIter.FirstWhich()); const SfxPoolItem *pPoolItem; _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits