diff options
author | Miklos Vajna <vmiklos@collabora.co.uk> | 2014-10-16 21:12:34 +0200 |
---|---|---|
committer | Miklos Vajna <vmiklos@collabora.co.uk> | 2014-10-16 21:12:34 +0200 |
commit | 9401b1be3480037f2dfcb7b6daf069137ccd7c42 (patch) | |
tree | 337c5f42cc4db6aabadde1c57d05fd7b80531524 /writerfilter | |
parent | 8bc1ee9b4cd46d645e8aca0f9ea6844c702a64c0 (diff) |
writerfilter: make dmapper logging a runtime decision, not a buildtime one
It's still only enabled in debug builds, but it now requires an
environment variable, not rebuilding with dbglevel=2.
Change-Id: I970c7bfe0b3f547429ef37f37406a095a60c34ff
Diffstat (limited to 'writerfilter')
-rw-r--r-- | writerfilter/Library_writerfilter.mk | 2 | ||||
-rw-r--r-- | writerfilter/README | 3 | ||||
-rw-r--r-- | writerfilter/source/dmapper/DomainMapperTableHandler.cxx | 3 | ||||
-rw-r--r-- | writerfilter/source/filter/ImportFilter.cxx | 3 | ||||
-rw-r--r-- | writerfilter/source/filter/RtfFilter.cxx | 3 | ||||
-rw-r--r-- | writerfilter/source/resourcemodel/TagLogger.cxx | 16 |
6 files changed, 26 insertions, 4 deletions
diff --git a/writerfilter/Library_writerfilter.mk b/writerfilter/Library_writerfilter.mk index 4a7e3fb71ea2..f4c2c9e535cb 100644 --- a/writerfilter/Library_writerfilter.mk +++ b/writerfilter/Library_writerfilter.mk @@ -28,7 +28,7 @@ $(eval $(call gb_Library_use_sdk_api,writerfilter)) $(eval $(call gb_Library_set_componentfile,writerfilter,writerfilter/util/writerfilter)) $(eval $(call gb_Library_add_defs,writerfilter,\ - $(if $(filter-out 0 1,$(gb_DEBUGLEVEL)), \ + $(if $(filter-out 0,$(gb_DEBUGLEVEL)), \ -DDEBUG_DOMAINMAPPER \ ) \ )) diff --git a/writerfilter/README b/writerfilter/README index 0e8d1dc9c330..0d492e4070cd 100644 --- a/writerfilter/README +++ b/writerfilter/README @@ -11,6 +11,9 @@ Import filter for docx, doc and rtf. == Source contents == * dmapper: the domain mapper, hiding UNO from the tokenizers, used by DOCX and RTF import + * The incoming traffic of dmapper can be dumped into an XML file in /tmp in + debug builds, start soffice with the + `SW_DEBUG_WRITERFILTER=1` environment variable if you want that. * filter: the UNO filter service implementations, invoked by UNO and calling the dmapper + one of the tokenizers * ooxml: the docx tokenizer diff --git a/writerfilter/source/dmapper/DomainMapperTableHandler.cxx b/writerfilter/source/dmapper/DomainMapperTableHandler.cxx index 3b990485cd18..0aa4be1b663b 100644 --- a/writerfilter/source/dmapper/DomainMapperTableHandler.cxx +++ b/writerfilter/source/dmapper/DomainMapperTableHandler.cxx @@ -415,7 +415,8 @@ TableStyleSheetEntry * DomainMapperTableHandler::endTableGetTableStyle(TableInfo #ifdef DEBUG_DOMAINMAPPER dmapper_logger->startElement("mergedProps"); - pMergedProperties->dumpXml( dmapper_logger ); + if (pMergedProperties) + pMergedProperties->dumpXml( dmapper_logger ); dmapper_logger->endElement(); #endif diff --git a/writerfilter/source/filter/ImportFilter.cxx b/writerfilter/source/filter/ImportFilter.cxx index 3740b3b12b08..1eb2670b2ea6 100644 --- a/writerfilter/source/filter/ImportFilter.cxx +++ b/writerfilter/source/filter/ImportFilter.cxx @@ -83,7 +83,8 @@ sal_Bool WriterFilter::filter( const uno::Sequence< beans::PropertyValue >& aDes writerfilter::TagLogger::Pointer_t dmapper_logger (writerfilter::TagLogger::getInstance("DOMAINMAPPER")); - dmapper_logger->setFileName(sURLc); + if (getenv("SW_DEBUG_WRITERFILTER")) + dmapper_logger->setFileName(sURLc); dmapper_logger->startDocument(); #endif diff --git a/writerfilter/source/filter/RtfFilter.cxx b/writerfilter/source/filter/RtfFilter.cxx index 3a7e6c49380b..01a5895a5bf5 100644 --- a/writerfilter/source/filter/RtfFilter.cxx +++ b/writerfilter/source/filter/RtfFilter.cxx @@ -78,7 +78,8 @@ sal_Bool RtfFilter::filter(const uno::Sequence< beans::PropertyValue >& aDescrip writerfilter::TagLogger::Pointer_t dmapper_logger (writerfilter::TagLogger::getInstance("DOMAINMAPPER")); - dmapper_logger->setFileName(sURLc); + if (getenv("SW_DEBUG_WRITERFILTER")) + dmapper_logger->setFileName(sURLc); dmapper_logger->startDocument(); #endif uno::Reference< io::XInputStream > xInputStream; diff --git a/writerfilter/source/resourcemodel/TagLogger.cxx b/writerfilter/source/resourcemodel/TagLogger.cxx index 58a904ed6e9a..d65566d56b42 100644 --- a/writerfilter/source/resourcemodel/TagLogger.cxx +++ b/writerfilter/source/resourcemodel/TagLogger.cxx @@ -74,12 +74,16 @@ namespace writerfilter void TagLogger::startDocument() { + if (!pWriter) + return; xmlTextWriterStartDocument( pWriter, NULL, NULL, NULL ); xmlTextWriterStartElement( pWriter, BAD_CAST( "root" ) ); } void TagLogger::endDocument() { + if (!pWriter) + return; xmlTextWriterEndDocument( pWriter ); xmlFreeTextWriter( pWriter ); pWriter = NULL; @@ -149,6 +153,8 @@ namespace writerfilter void TagLogger::startElement(const std::string & name) { + if (!pWriter) + return; xmlChar* xmlName = xmlCharStrdup( name.c_str() ); xmlTextWriterStartElement( pWriter, xmlName ); xmlFree( xmlName ); @@ -157,6 +163,8 @@ namespace writerfilter void TagLogger::attribute(const std::string & name, const std::string & value) { + if (!pWriter) + return; xmlChar* xmlName = xmlCharStrdup( name.c_str() ); xmlChar* xmlValue = xmlCharStrdup( value.c_str() ); xmlTextWriterWriteAttribute( pWriter, xmlName, xmlValue ); @@ -173,6 +181,8 @@ namespace writerfilter void TagLogger::attribute(const std::string & name, sal_uInt32 value) { + if (!pWriter) + return; xmlChar* xmlName = xmlCharStrdup( name.c_str() ); xmlTextWriterWriteFormatAttribute( pWriter, xmlName, "%" SAL_PRIuUINT32, value ); @@ -181,6 +191,8 @@ namespace writerfilter void TagLogger::attribute(const std::string & name, const uno::Any aAny) { + if (!pWriter) + return; std::string aTmpStrInt; std::string aTmpStrFloat; std::string aTmpStrString; @@ -209,6 +221,8 @@ namespace writerfilter void TagLogger::chars(const std::string & rChars) { + if (!pWriter) + return; xmlChar* xmlChars = xmlCharStrdup( rChars.c_str() ); xmlTextWriterWriteString( pWriter, xmlChars ); xmlFree( xmlChars ); @@ -221,6 +235,8 @@ namespace writerfilter void TagLogger::endElement() { + if (!pWriter) + return; xmlTextWriterEndElement( pWriter ); } |