diff options
-rw-r--r-- | include/svx/svdetc.hxx | 2 | ||||
-rw-r--r-- | svx/source/svdraw/svdedxv.cxx | 6 | ||||
-rw-r--r-- | svx/source/svdraw/svdetc.cxx | 6 |
3 files changed, 7 insertions, 7 deletions
diff --git a/include/svx/svdetc.hxx b/include/svx/svdetc.hxx index abd5c886ef2b..94d3db0240ee 100644 --- a/include/svx/svdetc.hxx +++ b/include/svx/svdetc.hxx @@ -103,7 +103,7 @@ bool SearchOutlinerItems(const SfxItemSet& rSet, bool bInklDefaults, bool* pbOnl /** * @returns a new WhichTable, which we need to squash at some point with a delete */ -sal_uInt16* RemoveWhichRange(const sal_uInt16* pOldWhichTable, sal_uInt16 nRangeBeg, sal_uInt16 nRangeEnd); +std::unique_ptr<sal_uInt16[]> RemoveWhichRange(const sal_uInt16* pOldWhichTable, sal_uInt16 nRangeBeg, sal_uInt16 nRangeEnd); /** * Helper class for the communication between the dialog diff --git a/svx/source/svdraw/svdedxv.cxx b/svx/source/svdraw/svdedxv.cxx index d2a4cff5710d..be6e6897576a 100644 --- a/svx/source/svdraw/svdedxv.cxx +++ b/svx/source/svdraw/svdedxv.cxx @@ -2129,9 +2129,9 @@ bool SdrObjEditView::SetAttributes(const SfxItemSet& rSet, bool bReplaceAll) // Otherwise split Set, if necessary. // Now we build an ItemSet aSet that doesn't contain EE_Items from // *pSet (otherwise it would be a copy). - sal_uInt16* pNewWhichTable=RemoveWhichRange(pSet->GetRanges(),EE_ITEMS_START,EE_ITEMS_END); - SfxItemSet aSet(mpModel->GetItemPool(),pNewWhichTable); - delete[] pNewWhichTable; + std::unique_ptr<sal_uInt16[]> pNewWhichTable=RemoveWhichRange(pSet->GetRanges(),EE_ITEMS_START,EE_ITEMS_END); + SfxItemSet aSet(mpModel->GetItemPool(),pNewWhichTable.get()); + pNewWhichTable.reset(); SfxWhichIter aIter(aSet); sal_uInt16 nWhich=aIter.FirstWhich(); while (nWhich!=0) diff --git a/svx/source/svdraw/svdetc.cxx b/svx/source/svdraw/svdetc.cxx index 46efe26887d2..3e73c8a282fc 100644 --- a/svx/source/svdraw/svdetc.cxx +++ b/svx/source/svdraw/svdetc.cxx @@ -377,7 +377,7 @@ bool SearchOutlinerItems(const SfxItemSet& rSet, bool bInklDefaults, bool* pbOnl return bHas; } -sal_uInt16* RemoveWhichRange(const sal_uInt16* pOldWhichTable, sal_uInt16 nRangeBeg, sal_uInt16 nRangeEnd) +std::unique_ptr<sal_uInt16[]> RemoveWhichRange(const sal_uInt16* pOldWhichTable, sal_uInt16 nRangeBeg, sal_uInt16 nRangeEnd) { // Six possible cases (per range): // [Beg..End] Range, to delete @@ -403,8 +403,8 @@ sal_uInt16* RemoveWhichRange(const sal_uInt16* pOldWhichTable, sal_uInt16 nRange else /* nCase=6 */ nAlloc+=2; } - sal_uInt16* pNewWhichTable=new sal_uInt16[nAlloc]; - memcpy(pNewWhichTable,pOldWhichTable,nAlloc*sizeof(sal_uInt16)); + std::unique_ptr<sal_uInt16[]> pNewWhichTable(new sal_uInt16[nAlloc]); + memcpy(pNewWhichTable.get(), pOldWhichTable, nAlloc*sizeof(sal_uInt16)); pNewWhichTable[nAlloc-1]=0; // in case 3, there's no 0 at the end. // now remove the unwanted ranges nNum=nAlloc-1; |