[Libreoffice-commits] core.git: sw/source
Mike Kaganski (via logerrit)
logerrit at kemper.freedesktop.org
Sun Aug 18 05:32:04 UTC 2019
sw/source/uibase/utlui/uitool.cxx | 36 ++++++------------------------------
1 file changed, 6 insertions(+), 30 deletions(-)
New commits:
commit e0826f8e18b5ad8f8743a4aa2fb78bffda2524f8
Author: Mike Kaganski <mike.kaganski at collabora.com>
AuthorDate: Sat Aug 17 18:20:09 2019 +0300
Commit: Mike Kaganski <mike.kaganski at collabora.com>
CommitDate: Sun Aug 18 07:31:08 2019 +0200
Related: tdf#126787: remove some defensive programming parts
I assume that these shouldn't be possible. If I am wrong, this commit
is easy to revert.
Change-Id: Icc2acb4d1150b713233823fe313b4d5044d4b33e
Reviewed-on: https://gerrit.libreoffice.org/77641
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski at collabora.com>
diff --git a/sw/source/uibase/utlui/uitool.cxx b/sw/source/uibase/utlui/uitool.cxx
index 0ed3fe8b24a5..034bb5eaf990 100644
--- a/sw/source/uibase/utlui/uitool.cxx
+++ b/sw/source/uibase/utlui/uitool.cxx
@@ -145,25 +145,18 @@ void ConvertAttrCharToGen(SfxItemSet& rSet)
// Tell dialogs to use character-specific slots/whichIds
// tdf#126684: We use RES_PARATR_GRABBAG, because RES_CHRATR_GRABBAG may be overwritten later in
// SwDocStyleSheet::GetItemSet when applying attributes from char format
- std::unique_ptr<SfxGrabBagItem> pGrabBag;
- const SfxPoolItem *pTmpItem;
- if (SfxItemState::SET == rSet.GetItemState(RES_PARATR_GRABBAG, false, &pTmpItem))
- {
- SAL_WARN("sw.ui", "Unexpected: non-empty paragraph grab bag in character item set!");
- pGrabBag.reset(static_cast<SfxGrabBagItem*>(pTmpItem->Clone()));
- }
- else
- pGrabBag.reset(new SfxGrabBagItem(RES_PARATR_GRABBAG));
- pGrabBag->GetGrabBag()["DialogUseCharAttr"] <<= true;
+ assert(SfxItemState::SET != rSet.GetItemState(RES_PARATR_GRABBAG, false));
+ SfxGrabBagItem aGrabBag(RES_PARATR_GRABBAG);
+ aGrabBag.GetGrabBag()["DialogUseCharAttr"] <<= true;
// Store initial ranges to allow restoring later
const sal_uInt16* pRanges = rSet.GetRanges();
const sal_uInt16* pEnd = pRanges;
while (*pEnd)
++pEnd;
const uno::Sequence<sal_uInt16> aOrigRanges(pRanges, pEnd - pRanges + 1);
- pGrabBag->GetGrabBag()["OrigItemSetRanges"] <<= aOrigRanges;
+ aGrabBag.GetGrabBag()["OrigItemSetRanges"] <<= aOrigRanges;
rSet.MergeRange(RES_PARATR_GRABBAG, RES_PARATR_GRABBAG);
- rSet.Put(std::move(pGrabBag));
+ rSet.Put(aGrabBag);
}
void ConvertAttrGenToChar(SfxItemSet& rSet, const SfxItemSet& rOrigSet)
@@ -204,24 +197,7 @@ void ConvertAttrGenToChar(SfxItemSet& rSet, const SfxItemSet& rOrigSet)
rSet.SetRanges(aOrigRanges.getConstArray());
}
}
- if (SfxItemState::SET == rSet.GetItemState(RES_PARATR_GRABBAG, false, &pTmpItem))
- {
- // In fact, we should not reach here: it shouldn't have been there; and even if it was, it
- // should have been erased on the previous step when restoring original ranges
- SAL_WARN("sw.ui", "Unexpected: paragraph grab bag in character item set!");
- SfxGrabBagItem aGrabBag(*static_cast<const SfxGrabBagItem*>(pTmpItem));
- std::map<OUString, css::uno::Any>& rMap = aGrabBag.GetGrabBag();
- // Remove temporary GrabBag entries
- rMap.erase("DialogUseCharAttr");
- rMap.erase("OrigItemSetRanges");
- if (rMap.empty())
- rSet.ClearItem(RES_PARATR_GRABBAG);
- else
- {
- SAL_WARN("sw.ui", "Unexpected: non-empty paragraph grab bag in character item set!");
- rSet.Put(aGrabBag);
- }
- }
+ assert(SfxItemState::SET != rSet.GetItemState(RES_PARATR_GRABBAG, false));
}
void ApplyCharBackground(const Color& rBackgroundColor, SwWrtShell& rShell)
More information about the Libreoffice-commits
mailing list