Kaydet (Commit) 0f98299f authored tarafından Stephan Bergmann's avatar Stephan Bergmann

Avoid bad downcast of SwFrmFmt to SwSectionFmt

as observed by -fsanitize=vptr e.g. during CppunitTest_writerperfect_writer:

SwFmtsModifyBase<SwSectionFmt*>::Contains(SwFmt const*) const
SwUndoFmtAttr::Init()
SwUndoFmtAttr::SwUndoFmtAttr(SfxItemSet const&, SwFmt&, bool)
SwDoc::ChgFmt(SwFmt&, SfxItemSet const&)
SwDocStyleSheet::SetItemSet(SfxItemSet const&, bool)
SwXStyle::SetPropertyValues_Impl(com::sun::star::uno::Sequence<rtl::OUString> const&, com::sun::star::uno::Sequence<com::sun::star::uno::Any> const&)
SwXStyle::setPropertyValues(com::sun::star::uno::Sequence<rtl::OUString> const&, com::sun::star::uno::Sequence<com::sun::star::uno::Any> const&)
SvXMLImportPropertyMapper::_FillMultiPropertySet(std::__debug::vector<XMLPropertyState, std::allocator<XMLPropertyState> > const&, com::sun::star::uno::Reference<com::sun::star::beans::XMultiPropertySet> const&, com::sun::star::uno::Reference<com::sun::star::beans::XPropertySetInfo> const&, rtl::Reference<XMLPropertySetMapper> const&, _ContextID_Index_Pair*)
SvXMLImportPropertyMapper::FillPropertySet(std::__debug::vector<XMLPropertyState, std::allocator<XMLPropertyState> > const&, com::sun::star::uno::Reference<com::sun::star::beans::XPropertySet>, _ContextID_Index_Pair*) const
XMLShapeStyleContext::FillPropertySet(com::sun::star::uno::Reference<com::sun::star::beans::XPropertySet> const&)
XMLPropStyleContext::CreateAndInsert(bool)
XMLTextShapeStyleContext::CreateAndInsert(bool)
SvXMLStylesContext::CopyStylesToDoc(bool, bool)
SwXMLImport::InsertStyles(bool)
SwXMLStylesContext_Impl::EndElement()
SvXMLImport::endElement(rtl::OUString const&)
...

Change-Id: Ibbf6d4def751c5a8ad1416e22b8b5255eda3dd44
üst dedc93e9
...@@ -128,8 +128,10 @@ public: ...@@ -128,8 +128,10 @@ public:
inline sal_uInt16 GetPos(const SwFmt *p) const inline sal_uInt16 GetPos(const SwFmt *p) const
{ return SwVectorModifyBase<Value>::GetPos( static_cast<Value>( const_cast<SwFmt*>( p ) ) ); } { return SwVectorModifyBase<Value>::GetPos( static_cast<Value>( const_cast<SwFmt*>( p ) ) ); }
inline bool Contains(const SwFmt *p) const inline bool Contains(const SwFmt *p) const {
{ return SwVectorModifyBase<Value>::Contains( static_cast<Value>( const_cast<SwFmt*>( p ) ) ); } Value p2 = dynamic_cast<Value>(const_cast<SwFmt*>(p));
return p2 != nullptr && SwVectorModifyBase<Value>::Contains(p2);
}
}; };
class SwGrfFmtColls : public SwFmtsModifyBase<SwGrfFmtColl*> class SwGrfFmtColls : public SwFmtsModifyBase<SwGrfFmtColl*>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment