rhbz#1071604 don't crash if slide layout configs are missing
Change-Id: I5cbf4ed0683cc5736a45fb980827b1b56bd0c74c
This commit is contained in:
@@ -1008,12 +1008,19 @@ void SdDrawDocument::InitLayoutVector()
|
|||||||
const Reference<XDocumentBuilder> xDocBuilder(
|
const Reference<XDocumentBuilder> xDocBuilder(
|
||||||
DocumentBuilder::create( comphelper::getComponentContext (xServiceFactory) ));
|
DocumentBuilder::create( comphelper::getComponentContext (xServiceFactory) ));
|
||||||
|
|
||||||
// loop over every layout entry in current file
|
try
|
||||||
const Reference<XDocument> xDoc = xDocBuilder->parseURI( sFilename );
|
{
|
||||||
const Reference<XNodeList> layoutlist = xDoc->getElementsByTagName("layout");
|
// loop over every layout entry in current file
|
||||||
const int nElements = layoutlist->getLength();
|
const Reference<XDocument> xDoc = xDocBuilder->parseURI( sFilename );
|
||||||
for(int index=0; index < nElements; index++)
|
const Reference<XNodeList> layoutlist = xDoc->getElementsByTagName("layout");
|
||||||
maLayoutInfo.push_back( layoutlist->item(index) );
|
const int nElements = layoutlist->getLength();
|
||||||
|
for(int index=0; index < nElements; index++)
|
||||||
|
maLayoutInfo.push_back( layoutlist->item(index) );
|
||||||
|
}
|
||||||
|
catch (const uno::Exception &)
|
||||||
|
{
|
||||||
|
// skip missing config. files
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1037,12 +1044,19 @@ void SdDrawDocument::InitObjectVector()
|
|||||||
const Reference<XDocumentBuilder> xDocBuilder(
|
const Reference<XDocumentBuilder> xDocBuilder(
|
||||||
DocumentBuilder::create( comphelper::getComponentContext (xServiceFactory) ));
|
DocumentBuilder::create( comphelper::getComponentContext (xServiceFactory) ));
|
||||||
|
|
||||||
// loop over every object entry in current file
|
try
|
||||||
const Reference<XDocument> xDoc = xDocBuilder->parseURI( sFilename );
|
{
|
||||||
const Reference<XNodeList> objectlist = xDoc->getElementsByTagName("object");
|
// loop over every object entry in current file
|
||||||
const int nElements = objectlist->getLength();
|
const Reference<XDocument> xDoc = xDocBuilder->parseURI( sFilename );
|
||||||
for(int index=0; index < nElements; index++)
|
const Reference<XNodeList> objectlist = xDoc->getElementsByTagName("object");
|
||||||
maPresObjectInfo.push_back( objectlist->item(index) );
|
const int nElements = objectlist->getLength();
|
||||||
|
for(int index=0; index < nElements; index++)
|
||||||
|
maPresObjectInfo.push_back( objectlist->item(index) );
|
||||||
|
}
|
||||||
|
catch (const uno::Exception &)
|
||||||
|
{
|
||||||
|
// skip missing config. files
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|
||||||
|
Reference in New Issue
Block a user