summaryrefslogtreecommitdiff
path: root/l10ntools
diff options
context:
space:
mode:
authorStephan Bergmann <sbergman@redhat.com>2022-11-20 17:46:31 +0100
committerStephan Bergmann <sbergman@redhat.com>2022-11-20 22:39:54 +0100
commite735de2051143347b7283c85ad80b0e2412522dc (patch)
tree3eda66ce19ca59e4f3447b9cd303c309abd8a7b1 /l10ntools
parent1f9b2a7057a519e0ea750875ac439129f1d3df87 (diff)
Avoid some unnecessary, wrong downcasts during `make translations`
> l10ntools/source/xmlparse.cxx:491:51: runtime error: downcast of address 0x603000000610 which does not point to an object of type 'XMLParentNode' > 0x603000000610: note: object is of type 'XMLDefault' > 00 00 00 00 30 44 a7 dd a0 55 00 00 00 05 10 6e a4 7f 00 00 80 00 00 00 60 60 00 00 00 00 00 00 > ^~~~~~~~~~~~~~~~~~~~~~~ > vptr for 'XMLDefault' > #0 in XMLFile::CheckExportStatus(XMLParentNode*) at l10ntools/source/xmlparse.cxx:491:51 > #1 in XMLFile::CheckExportStatus(XMLParentNode*) at l10ntools/source/xmlparse.cxx:481:9 > #2 in HelpParser::CreatePO(rtl::OString const&, rtl::OString const&, XMLFile*, std::basic_string_view<char, std::char_traits<char>>) at l10ntools/source/helpmerge.cxx:91:20 > #3 in sal_main_with_args(int, char**) at l10ntools/source/helpex.cxx:124:17 > #4 in main at l10ntools/source/helpex.cxx:47:1 and > l10ntools/source/xmlparse.cxx:523:44: runtime error: downcast of address 0x6030000007c0 which does not point to an object of type 'XMLParentNode' > 0x6030000007c0: note: object is of type 'XMLData' > 00 00 00 00 e0 53 d5 c0 46 56 00 00 d0 00 00 00 40 60 00 00 f0 07 00 00 30 60 00 00 00 00 00 00 > ^~~~~~~~~~~~~~~~~~~~~~~ > vptr for 'XMLData' > #0 in XMLFile::CheckExportStatus(XMLParentNode*) at l10ntools/source/xmlparse.cxx:523:44 > #1 in XMLFile::CheckExportStatus(XMLParentNode*) at l10ntools/source/xmlparse.cxx:492:80 > #2 in XMLFile::CheckExportStatus(XMLParentNode*) at l10ntools/source/xmlparse.cxx:481:9 > #3 in HelpParser::CreatePO(rtl::OString const&, rtl::OString const&, XMLFile*, std::basic_string_view<char, std::char_traits<char>>) at l10ntools/source/helpmerge.cxx:91:20 > #4 in sal_main_with_args(int, char**) at l10ntools/source/helpex.cxx:124:17 > #5 in main at l10ntools/source/helpex.cxx:47:1 and > l10ntools/source/xmlparse.cxx:526:48: runtime error: downcast of address 0x603000000820 which does not point to an object of type 'XMLParentNode' > 0x603000000820: note: object is of type 'XMLComment' > 00 00 00 00 28 06 92 a9 17 56 00 00 d0 00 00 00 40 60 00 00 40 00 00 00 20 61 00 00 00 00 00 00 > ^~~~~~~~~~~~~~~~~~~~~~~ > vptr for 'XMLComment' > #0 in XMLFile::CheckExportStatus(XMLParentNode*) at l10ntools/source/xmlparse.cxx:523:44 > #1 in XMLFile::CheckExportStatus(XMLParentNode*) at l10ntools/source/xmlparse.cxx:492:80 > #2 in XMLFile::CheckExportStatus(XMLParentNode*) at l10ntools/source/xmlparse.cxx:481:9 > #3 in HelpParser::CreatePO(rtl::OString const&, rtl::OString const&, XMLFile*, std::basic_string_view<char, std::char_traits<char>>) at l10ntools/source/helpmerge.cxx:91:20 > #4 in sal_main_with_args(int, char**) at l10ntools/source/helpex.cxx:124:17 > #5 in main at l10ntools/source/helpex.cxx:47:1 Change-Id: I1e2c6bf802aa03b5b1eb21532e98fa22d966e683 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/143000 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
Diffstat (limited to 'l10ntools')
-rw-r--r--l10ntools/source/xmlparse.cxx12
1 files changed, 9 insertions, 3 deletions
diff --git a/l10ntools/source/xmlparse.cxx b/l10ntools/source/xmlparse.cxx
index b32ed4f5037a..bcf5d37154cb 100644
--- a/l10ntools/source/xmlparse.cxx
+++ b/l10ntools/source/xmlparse.cxx
@@ -488,8 +488,8 @@ bool XMLFile::CheckExportStatus( XMLParentNode *pCur )
{
for ( size_t i = 0; i < GetChildList()->size(); i++ )
{
- XMLParentNode* pElement = static_cast<XMLParentNode*>((*GetChildList())[ i ]);
- if( pElement->GetNodeType() == XMLNodeType::ELEMENT ) CheckExportStatus( pElement );//, i);
+ XMLChildNode* pElement = (*GetChildList())[ i ];
+ if( pElement->GetNodeType() == XMLNodeType::ELEMENT ) CheckExportStatus( static_cast<XMLParentNode*>(pElement) );//, i);
}
}
}
@@ -520,7 +520,13 @@ bool XMLFile::CheckExportStatus( XMLParentNode *pCur )
else if ( pElement->GetChildList() )
{
for (size_t k = 0; k < pElement->GetChildList()->size(); ++k)
- CheckExportStatus( static_cast<XMLParentNode*>((*pElement->GetChildList())[k]) );
+ {
+ auto const child = (*pElement->GetChildList())[k];
+ auto const type = child->GetNodeType();
+ if (type != XMLNodeType::DATA && type != XMLNodeType::COMMENT) {
+ CheckExportStatus( static_cast<XMLParentNode*>(child) );
+ }
+ }
}
}
break;