rhbz#1071604 don't crash if slide layout configs are missing

Change-Id: I5cbf4ed0683cc5736a45fb980827b1b56bd0c74c
(cherry picked from commit df71f13b80c30cb98e310baf8f6aee11f8cbe81d)
Reviewed-on: https://gerrit.libreoffice.org/9289
Tested-by: Michael Stahl <mstahl@redhat.com>
Reviewed-by: Michael Stahl <mstahl@redhat.com>
diff --git a/sd/source/core/drawdoc.cxx b/sd/source/core/drawdoc.cxx
index f0c14c6..5716b43 100644
--- a/sd/source/core/drawdoc.cxx
+++ b/sd/source/core/drawdoc.cxx
@@ -1006,12 +1006,19 @@ void SdDrawDocument::InitLayoutVector()
        const Reference<XDocumentBuilder> xDocBuilder(
            DocumentBuilder::create( comphelper::getComponentContext (xServiceFactory) ));

        // loop over every layout entry in current file
        const Reference<XDocument> xDoc = xDocBuilder->parseURI( sFilename );
        const Reference<XNodeList> layoutlist = xDoc->getElementsByTagName("layout");
        const int nElements = layoutlist->getLength();
        for(int index=0; index < nElements; index++)
            maLayoutInfo.push_back( layoutlist->item(index) );
        try
        {
            // loop over every layout entry in current file
            const Reference<XDocument> xDoc = xDocBuilder->parseURI( sFilename );
            const Reference<XNodeList> layoutlist = xDoc->getElementsByTagName("layout");
            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
        }
    }
}

@@ -1035,12 +1042,19 @@ void SdDrawDocument::InitObjectVector()
        const Reference<XDocumentBuilder> xDocBuilder(
            DocumentBuilder::create( comphelper::getComponentContext (xServiceFactory) ));

        // loop over every object entry in current file
        const Reference<XDocument> xDoc = xDocBuilder->parseURI( sFilename );
        const Reference<XNodeList> objectlist = xDoc->getElementsByTagName("object");
        const int nElements = objectlist->getLength();
        for(int index=0; index < nElements; index++)
            maPresObjectInfo.push_back( objectlist->item(index) );
        try
        {
            // loop over every object entry in current file
            const Reference<XDocument> xDoc = xDocBuilder->parseURI( sFilename );
            const Reference<XNodeList> objectlist = xDoc->getElementsByTagName("object");
            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: */