You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openoffice.apache.org by ar...@apache.org on 2022/12/09 19:28:51 UTC
[openoffice] 01/03: Check validity of page descriptors
This is an automated email from the ASF dual-hosted git repository.
ardovm pushed a commit to branch ppt
in repository https://gitbox.apache.org/repos/asf/openoffice.git
commit b622dd6d9d2607212ada7fd2dd4e4951e49eb0d6
Author: Arrigo Marchiori <ar...@yahoo.it>
AuthorDate: Fri Dec 9 17:08:24 2022 +0100
Check validity of page descriptors
---
main/sd/source/filter/ppt/pptin.cxx | 15 ++++++++++++---
main/svx/source/svdraw/svdpage.cxx | 12 ++++++++++++
2 files changed, 24 insertions(+), 3 deletions(-)
diff --git a/main/sd/source/filter/ppt/pptin.cxx b/main/sd/source/filter/ppt/pptin.cxx
index c79c05ddf9..5d5936ccd6 100644
--- a/main/sd/source/filter/ppt/pptin.cxx
+++ b/main/sd/source/filter/ppt/pptin.cxx
@@ -2487,9 +2487,18 @@ SdrObject* ImplSdPPTImport::ApplyTextObj( PPTTextObj* pTextObj, SdrTextObj* pObj
if ( ( eAktPageKind != PPT_NOTEPAGE ) && ( pSlideLayout->aPlacementId[ i ] != (sal_uLong)-1 ) )
{
- SdrObject* pTitleObj = ((SdPage&)pPage->TRG_GetMasterPage()).GetPresObj( PRESOBJ_TITLE );
- SdrObject* pOutlineObj = ((SdPage&)pPage->TRG_GetMasterPage()).GetPresObj( PRESOBJ_OUTLINE );
-
+ SdrObject* pTitleObj;
+ try {
+ pTitleObj = ((SdPage&)pPage->TRG_GetMasterPage()).GetPresObj( PRESOBJ_TITLE );
+ } catch (uno::Exception &) {
+ pTitleObj = NULL;
+ }
+ SdrObject* pOutlineObj;
+ try {
+ pOutlineObj = ((SdPage&)pPage->TRG_GetMasterPage()).GetPresObj( PRESOBJ_OUTLINE );
+ } catch (uno::Exception &) {
+ pOutlineObj = NULL;
+ }
Rectangle aTitleRect;
Rectangle aOutlineRect;
Size aOutlineSize;
diff --git a/main/svx/source/svdraw/svdpage.cxx b/main/svx/source/svdraw/svdpage.cxx
index 3507bbfb8e..ca12e75818 100644
--- a/main/svx/source/svdraw/svdpage.cxx
+++ b/main/svx/source/svdraw/svdpage.cxx
@@ -1768,24 +1768,36 @@ void SdrPage::TRG_ClearMasterPage()
SdrPage& SdrPage::TRG_GetMasterPage() const
{
DBG_ASSERT(mpMasterPageDescriptor != 0L, "TRG_GetMasterPage(): No MasterPage available. Use TRG_HasMasterPage() before access (!)");
+ if (mpMasterPageDescriptor == NULL) {
+ throw uno::RuntimeException(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("No master page descriptor")), NULL);
+ }
return mpMasterPageDescriptor->GetUsedPage();
}
const SetOfByte& SdrPage::TRG_GetMasterPageVisibleLayers() const
{
DBG_ASSERT(mpMasterPageDescriptor != 0L, "TRG_GetMasterPageVisibleLayers(): No MasterPage available. Use TRG_HasMasterPage() before access (!)");
+ if (mpMasterPageDescriptor == NULL) {
+ throw uno::RuntimeException(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("No master page descriptor")), NULL);
+ }
return mpMasterPageDescriptor->GetVisibleLayers();
}
void SdrPage::TRG_SetMasterPageVisibleLayers(const SetOfByte& rNew)
{
DBG_ASSERT(mpMasterPageDescriptor != 0L, "TRG_SetMasterPageVisibleLayers(): No MasterPage available. Use TRG_HasMasterPage() before access (!)");
+ if (mpMasterPageDescriptor == NULL) {
+ throw uno::RuntimeException(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("No master page descriptor")), NULL);
+ }
mpMasterPageDescriptor->SetVisibleLayers(rNew);
}
sdr::contact::ViewContact& SdrPage::TRG_GetMasterPageDescriptorViewContact() const
{
DBG_ASSERT(mpMasterPageDescriptor != 0L, "TRG_GetMasterPageDescriptorViewContact(): No MasterPage available. Use TRG_HasMasterPage() before access (!)");
+ if (mpMasterPageDescriptor == NULL) {
+ throw uno::RuntimeException(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("No master page descriptor")), NULL);
+ }
return mpMasterPageDescriptor->GetViewContact();
}