tdf#138144 Form wizard fails to save

fallout from
    commit 3de38e95561ab7ca114d9f3307702ba89c4e3e9a
    Date:   Tue Nov 10 19:20:06 2020 +0200
    use fastparser in forms

Change-Id: I4691786525132ef0cf98b6b177a2c022c4d7d032
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105932
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
This commit is contained in:
Noel 2020-11-16 15:18:15 +02:00 committed by Noel Grandin
parent b9ef71476f
commit d52f83c7db
3 changed files with 11 additions and 6 deletions

View File

@ -22,6 +22,7 @@
#include <com/sun/star/xml/sax/XFastAttributeList.hpp> #include <com/sun/star/xml/sax/XFastAttributeList.hpp>
#include <com/sun/star/xml/sax/XFastTokenHandler.hpp> #include <com/sun/star/xml/sax/XFastTokenHandler.hpp>
#include <com/sun/star/util/XCloneable.hpp>
#include <cppuhelper/implbase.hxx> #include <cppuhelper/implbase.hxx>
#include <sax/saxdllapi.h> #include <sax/saxdllapi.h>
@ -69,7 +70,7 @@ class SAX_DLLPUBLIC FastTokenHandlerBase :
}; };
class SAX_DLLPUBLIC FastAttributeList final : public cppu::WeakImplHelper< css::xml::sax::XFastAttributeList > class SAX_DLLPUBLIC FastAttributeList final : public cppu::WeakImplHelper< css::xml::sax::XFastAttributeList, css::util::XCloneable >
{ {
public: public:
FastAttributeList( FastTokenHandlerBase *pTokenHandler ); FastAttributeList( FastTokenHandlerBase *pTokenHandler );
@ -113,6 +114,9 @@ public:
virtual css::uno::Sequence< css::xml::Attribute > SAL_CALL getUnknownAttributes( ) override; virtual css::uno::Sequence< css::xml::Attribute > SAL_CALL getUnknownAttributes( ) override;
virtual css::uno::Sequence< css::xml::FastAttribute > SAL_CALL getFastAttributes() override; virtual css::uno::Sequence< css::xml::FastAttribute > SAL_CALL getFastAttributes() override;
// XCloneable
virtual ::css::uno::Reference< ::css::util::XCloneable > SAL_CALL createClone() override;
sal_Int32 getAttributeIndex( ::sal_Int32 Token ) sal_Int32 getAttributeIndex( ::sal_Int32 Token )
{ {
for (size_t i=0; i<maAttributeTokens.size(); ++i) for (size_t i=0; i<maAttributeTokens.size(); ++i)

View File

@ -75,6 +75,10 @@ FastAttributeList::FastAttributeList( const css::uno::Reference< css::xml::sax::
maUnknownAttributes = rOther.maUnknownAttributes; maUnknownAttributes = rOther.maUnknownAttributes;
} }
css::uno::Reference< ::css::util::XCloneable > FastAttributeList::createClone()
{
return new FastAttributeList(this);
}
FastAttributeList::~FastAttributeList() FastAttributeList::~FastAttributeList()
{ {

View File

@ -1763,11 +1763,8 @@ namespace xmloff
OSL_ENSURE(!m_xOwnAttributes.is(), "OColumnWrapperImport::StartElement: already have the cloned list!"); OSL_ENSURE(!m_xOwnAttributes.is(), "OColumnWrapperImport::StartElement: already have the cloned list!");
// clone the attributes // clone the attributes
Reference< XCloneable > xCloneList(_rxAttrList, UNO_QUERY); Reference< XCloneable > xCloneList(_rxAttrList, UNO_QUERY_THROW);
OSL_ENSURE(xCloneList.is(), "OColumnWrapperImport::StartElement: AttributeList not clonable!"); m_xOwnAttributes.set(xCloneList->createClone(), UNO_QUERY_THROW);
if ( xCloneList.is() )
m_xOwnAttributes.set(xCloneList->createClone(), UNO_QUERY);
OSL_ENSURE(m_xOwnAttributes.is(), "OColumnWrapperImport::StartElement: no cloned list!");
} }
OControlImport* OColumnWrapperImport::implCreateChildContext( OControlImport* OColumnWrapperImport::implCreateChildContext(