dbaccess/source/filter/xml/xmlTableFilterList.cxx | 4 +- include/xmloff/xmlimp.hxx | 41 +++++++++++++--------- sc/source/filter/xml/xmlbodyi.cxx | 2 - starmath/source/mathmlimport.cxx | 2 - svx/source/xml/xmlxtimp.cxx | 16 +++----- sw/source/core/swg/SwXMLSectionList.cxx | 4 +- xmloff/source/draw/animationimport.cxx | 12 +++--- xmloff/source/draw/ximppage.cxx | 2 - xmloff/source/meta/xmlmetai.cxx | 2 - xmloff/source/script/xmlbasicscript.cxx | 6 +-- 10 files changed, 50 insertions(+), 41 deletions(-)
New commits: commit 3e9bef4b6ef2e1b467b46f5579b5fce201015d83 Author: Noel Grandin <noel.gran...@collabora.co.uk> AuthorDate: Tue Apr 28 16:16:34 2020 +0200 Commit: Noel Grandin <noel.gran...@collabora.co.uk> CommitDate: Wed Apr 29 19:35:52 2020 +0200 simplify handling of comparing XML_NAMESPACE values Change-Id: I18bbf1ee206285842250891ce556d523489855b1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/93075 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk> diff --git a/dbaccess/source/filter/xml/xmlTableFilterList.cxx b/dbaccess/source/filter/xml/xmlTableFilterList.cxx index e147bd10a548..ddd799087a48 100644 --- a/dbaccess/source/filter/xml/xmlTableFilterList.cxx +++ b/dbaccess/source/filter/xml/xmlTableFilterList.cxx @@ -51,8 +51,8 @@ css::uno::Reference< css::xml::sax::XFastContextHandler > OXMLTableFilterList::c { SvXMLImportContext *pContext = nullptr; - if ( (nElement & NMSP_MASK) == NAMESPACE_TOKEN(XML_NAMESPACE_DB) || - (nElement & NMSP_MASK) == NAMESPACE_TOKEN(XML_NAMESPACE_DB_OASIS) ) + if ( IsTokenInNamespace(nElement, XML_NAMESPACE_DB) || + IsTokenInNamespace(nElement, XML_NAMESPACE_DB_OASIS) ) { GetImport().GetProgressBarHelper()->Increment( PROGRESS_BAR_STEP ); switch (nElement & TOKEN_MASK) diff --git a/include/xmloff/xmlimp.hxx b/include/xmloff/xmlimp.hxx index 19bb0b7b5358..9b9052e46f1a 100644 --- a/include/xmloff/xmlimp.hxx +++ b/include/xmloff/xmlimp.hxx @@ -59,24 +59,23 @@ namespace com { namespace sun { namespace star { namespace util { class XNumberF namespace com { namespace sun { namespace star { namespace xml { namespace sax { class XAttributeList; } } } } } namespace com { namespace sun { namespace star { namespace xml { namespace sax { class XFastAttributeList; } } } } } namespace com { namespace sun { namespace star { namespace xml { namespace sax { class XFastContextHandler; } } } } } -namespace comphelper { class AttributeList; } - -class ProgressBarHelper; - -#define NAMESPACE_TOKEN( prefixToken ) ( ( sal_Int32( prefixToken + 1 ) ) << NMSP_SHIFT ) -#define XML_ELEMENT( prefix, name ) ( NAMESPACE_TOKEN( XML_NAMESPACE_##prefix ) | name ) - -const size_t NMSP_SHIFT = 16; -const sal_Int32 TOKEN_MASK = 0xffff; -const sal_Int32 NMSP_MASK = 0xffff0000; - namespace com { namespace sun { namespace star { namespace frame { class XModel; } namespace io { class XOutputStream; } namespace rdf { class XMetadatable; } } } } + namespace comphelper { class UnoInterfaceToUniqueIdentifierMapper; } +namespace comphelper { class AttributeList; } + +namespace xmloff { + class RDFaImportHelper; +} +namespace xmloff::token { + class FastTokenHandler; +} +class ProgressBarHelper; class SvXMLNamespaceMap; class SvXMLImport_Impl; class SvXMLUnitConverter; @@ -87,13 +86,25 @@ class XMLErrors; class StyleMap; enum class SvXMLErrorFlags; -namespace xmloff { - class RDFaImportHelper; +constexpr sal_Int32 LAST_NAMESPACE = 121; // last value in xmloff/xmnspe.hxx +constexpr size_t NMSP_SHIFT = 16; +constexpr sal_Int32 TOKEN_MASK = 0xffff; +constexpr sal_Int32 NMSP_MASK = 0xffff0000; + +#define XML_ELEMENT( prefix, name ) ( NAMESPACE_TOKEN(XML_NAMESPACE_##prefix) | name ) + +constexpr sal_Int32 NAMESPACE_TOKEN( sal_uInt16 prefixToken ) +{ + return ( prefixToken + 1 ) << NMSP_SHIFT; } -namespace xmloff::token { - class FastTokenHandler; + +constexpr bool IsTokenInNamespace(sal_Int32 nToken, sal_uInt16 nNamespacePrefix) +{ + auto nTmp = ((nToken & NMSP_MASK) >> NMSP_SHIFT) - 1; + return nTmp == nNamespacePrefix; } + enum class SvXMLImportFlags { NONE = 0x0000, META = 0x0001, diff --git a/sc/source/filter/xml/xmlbodyi.cxx b/sc/source/filter/xml/xmlbodyi.cxx index 0dd1c421d23d..b1c687d0befa 100644 --- a/sc/source/filter/xml/xmlbodyi.cxx +++ b/sc/source/filter/xml/xmlbodyi.cxx @@ -95,7 +95,7 @@ ScXMLBodyContext::ScXMLBodyContext( ScXMLImport& rImport, for (auto &it : *rAttrList) { sal_Int32 nToken = it.getToken(); - if( NAMESPACE_TOKEN( XML_NAMESPACE_TABLE ) == ( nToken & NMSP_MASK ) ) + if( IsTokenInNamespace(nToken, XML_NAMESPACE_TABLE) ) { const sal_Int32 nLocalToken = nToken & TOKEN_MASK; if( nLocalToken == XML_STRUCTURE_PROTECTED ) diff --git a/starmath/source/mathmlimport.cxx b/starmath/source/mathmlimport.cxx index a4ef90a47504..e0dab47598b9 100644 --- a/starmath/source/mathmlimport.cxx +++ b/starmath/source/mathmlimport.cxx @@ -2614,7 +2614,7 @@ SvXMLImportContext *SmXMLImport::CreateFastContext(sal_Int32 nElement, } break; default: - if ((nElement & NMSP_MASK) == NAMESPACE_TOKEN(XML_NAMESPACE_OFFICE)) + if (IsTokenInNamespace(nElement, XML_NAMESPACE_OFFICE)) pContext = new SmXMLOfficeContext_Impl(*this); else pContext = new SmXMLDocContext_Impl(*this); diff --git a/svx/source/xml/xmlxtimp.cxx b/svx/source/xml/xmlxtimp.cxx index ea32ca9c380c..7c0a238dcebc 100644 --- a/svx/source/xml/xmlxtimp.cxx +++ b/svx/source/xml/xmlxtimp.cxx @@ -101,9 +101,8 @@ css::uno::Reference< css::xml::sax::XFastContextHandler > SvxXMLTableImportContext::createFastChildContext(sal_Int32 nElement, const css::uno::Reference< css::xml::sax::XFastAttributeList > & rAttrList) { - sal_Int32 nNamespace = nElement & NMSP_MASK; - if( NAMESPACE_TOKEN(XML_NAMESPACE_DRAW) == nNamespace || - NAMESPACE_TOKEN(XML_NAMESPACE_DRAW_OOO) == nNamespace ) + if( IsTokenInNamespace(nElement, XML_NAMESPACE_DRAW) || + IsTokenInNamespace(nElement, XML_NAMESPACE_DRAW_OOO) ) { SvXMLAttributeList *pAttrList = new SvXMLAttributeList; for (auto& aIter : sax_fastparser::castToFastAttributeList( rAttrList )) @@ -428,13 +427,12 @@ bool SvxXMLXTableImport::load( const OUString &rPath, const OUString &rReferer, SvXMLImportContext *SvxXMLXTableImport::CreateFastContext( sal_Int32 nElement, const ::css::uno::Reference< ::css::xml::sax::XFastAttributeList >& /*xAttrList*/ ) { - sal_Int32 nNamespace = nElement & NMSP_MASK; - if( NAMESPACE_TOKEN(XML_NAMESPACE_OOO) == nNamespace || - NAMESPACE_TOKEN(XML_NAMESPACE_OFFICE) == nNamespace || - NAMESPACE_TOKEN(XML_NAMESPACE_OFFICE_OOO) == nNamespace ) + if( IsTokenInNamespace(nElement, XML_NAMESPACE_OOO) || + IsTokenInNamespace(nElement, XML_NAMESPACE_OFFICE) || + IsTokenInNamespace(nElement, XML_NAMESPACE_OFFICE_OOO) ) { - bool bOOoFormat = (NAMESPACE_TOKEN(XML_NAMESPACE_OFFICE) == nNamespace) || - (NAMESPACE_TOKEN(XML_NAMESPACE_OFFICE_OOO) == nNamespace); + bool bOOoFormat = IsTokenInNamespace(nElement, XML_NAMESPACE_OFFICE) || + IsTokenInNamespace(nElement, XML_NAMESPACE_OFFICE_OOO); Type aType = mrTable->getElementType(); sal_Int32 nToken = nElement & TOKEN_MASK; diff --git a/sw/source/core/swg/SwXMLSectionList.cxx b/sw/source/core/swg/SwXMLSectionList.cxx index 13282cf12aac..aa6c63b8bb29 100644 --- a/sw/source/core/swg/SwXMLSectionList.cxx +++ b/sw/source/core/swg/SwXMLSectionList.cxx @@ -66,8 +66,8 @@ public: { return new SvXMLSectionListContext(GetImport()); } - if ((Element & NMSP_MASK) == NAMESPACE_TOKEN(XML_NAMESPACE_TEXT) || - (Element & NMSP_MASK) == NAMESPACE_TOKEN(XML_NAMESPACE_TEXT_OOO)) + if (IsTokenInNamespace(Element, XML_NAMESPACE_TEXT) || + IsTokenInNamespace(Element, XML_NAMESPACE_TEXT_OOO)) { auto nToken = Element & TOKEN_MASK; if (nToken == XML_P || diff --git a/xmloff/source/draw/animationimport.cxx b/xmloff/source/draw/animationimport.cxx index cfbfee630261..ebccff3d1a22 100644 --- a/xmloff/source/draw/animationimport.cxx +++ b/xmloff/source/draw/animationimport.cxx @@ -562,7 +562,8 @@ void AnimationNodeContext::init_node( const css::uno::Reference< css::xml::sax: for (auto &aIter : sax_fastparser::castToFastAttributeList( xAttrList )) { OUString rValue = aIter.toString(); - switch( aIter.getToken() ) + auto nToken = aIter.getToken(); + switch( nToken ) { case XML_ELEMENT(SMIL, XML_BEGIN): case XML_ELEMENT(SMIL_COMPAT, XML_BEGIN): @@ -1077,12 +1078,11 @@ void AnimationNodeContext::init_node( const css::uno::Reference< css::xml::sax: default: { - auto nNamespace = (aIter.getToken() & NMSP_MASK); // push all unknown attributes within the presentation namespace as user data - if (nNamespace == NAMESPACE_TOKEN(XML_NAMESPACE_PRESENTATION) - || nNamespace == NAMESPACE_TOKEN(XML_NAMESPACE_PRESENTATION_SO52) - || nNamespace == NAMESPACE_TOKEN(XML_NAMESPACE_PRESENTATION_OASIS) - || nNamespace == NAMESPACE_TOKEN(XML_NAMESPACE_PRESENTATION_OOO)) + if (IsTokenInNamespace(nToken, XML_NAMESPACE_PRESENTATION) + || IsTokenInNamespace(nToken, XML_NAMESPACE_PRESENTATION_SO52) + || IsTokenInNamespace(nToken, XML_NAMESPACE_PRESENTATION_OASIS) + || IsTokenInNamespace(nToken, XML_NAMESPACE_PRESENTATION_OOO)) { aUserData.emplace_back( SvXMLImport::getNameFromToken(aIter.getToken()), makeAny( rValue ) ); } diff --git a/xmloff/source/draw/ximppage.cxx b/xmloff/source/draw/ximppage.cxx index 23a89e943f2d..e803eda3a8f5 100644 --- a/xmloff/source/draw/ximppage.cxx +++ b/xmloff/source/draw/ximppage.cxx @@ -144,7 +144,7 @@ css::uno::Reference< css::xml::sax::XFastContextHandler > DrawAnnotationContext: { if( mxAnnotation.is() ) { - if ((nElement & NMSP_MASK) == NAMESPACE_TOKEN(XML_NAMESPACE_DC)) + if (IsTokenInNamespace(nElement, XML_NAMESPACE_DC)) { if( (nElement & TOKEN_MASK) == XML_CREATOR ) return new XMLStringBufferImportContext(GetImport(), maAuthorBuffer); diff --git a/xmloff/source/meta/xmlmetai.cxx b/xmloff/source/meta/xmlmetai.cxx index 715bd0ba052b..20fcfb38cdf9 100644 --- a/xmloff/source/meta/xmlmetai.cxx +++ b/xmloff/source/meta/xmlmetai.cxx @@ -216,7 +216,7 @@ void SAL_CALL SvXMLMetaDocumentContext::characters( const OUString& /*rChars*/ ) uno::Reference< xml::sax::XFastContextHandler > SAL_CALL SvXMLMetaDocumentContext::createFastChildContext( sal_Int32 nElement, const uno::Reference< xml::sax::XFastAttributeList >& xAttrList ) { - if ( nElement == ( NAMESPACE_TOKEN( XML_NAMESPACE_OFFICE ) | XML_META ) ) + if ( nElement == XML_ELEMENT(OFFICE, XML_META) ) return new XMLDocumentBuilderContext( GetImport(), nElement, xAttrList, mxDocBuilder); return nullptr; diff --git a/xmloff/source/script/xmlbasicscript.cxx b/xmloff/source/script/xmlbasicscript.cxx index 3c1ea97dbccb..efc655eca682 100644 --- a/xmloff/source/script/xmlbasicscript.cxx +++ b/xmloff/source/script/xmlbasicscript.cxx @@ -109,7 +109,7 @@ Reference<XFastContextHandler> BasicLibrariesElement::createFastChildContext(sal_Int32 nElement, const Reference<XFastAttributeList>& xAttributes) { - if ((nElement & NMSP_MASK) != NAMESPACE_TOKEN(XML_NAMESPACE_OOO)) + if (!IsTokenInNamespace(nElement, XML_NAMESPACE_OOO)) { throw xml::sax::SAXException("illegal namespace!", Reference<XInterface>(), Any()); } @@ -211,7 +211,7 @@ BasicEmbeddedLibraryElement::BasicEmbeddedLibraryElement( Reference<XFastContextHandler> BasicEmbeddedLibraryElement::createFastChildContext( sal_Int32 nElement, const Reference<XFastAttributeList>& xAttributes) { - if ((nElement & NMSP_MASK) != NAMESPACE_TOKEN(XML_NAMESPACE_OOO)) + if (!IsTokenInNamespace(nElement, XML_NAMESPACE_OOO)) { throw xml::sax::SAXException("illegal namespace!", Reference<XInterface>(), Any()); } @@ -253,7 +253,7 @@ BasicModuleElement::createFastChildContext(sal_Int32 nElement, { // TODO: <byte-code> - if ((nElement & NMSP_MASK) != NAMESPACE_TOKEN(XML_NAMESPACE_OOO)) + if (!IsTokenInNamespace(nElement, XML_NAMESPACE_OOO)) { throw xml::sax::SAXException("illegal namespace!", Reference<XInterface>(), Any()); } _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits