sc/source/ui/unoobj/docuno.cxx |   20 ++++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)

New commits:
commit 7da5bb1ff4a691fb5b55a4bccc0f6c87c9e17692
Author:     Julien Nabet <serval2...@yahoo.fr>
AuthorDate: Tue May 21 10:59:29 2024 +0200
Commit:     Julien Nabet <serval2...@yahoo.fr>
CommitDate: Tue May 21 14:06:48 2024 +0200

    tdf#161190: fix crash when exporting spreadsheet as PDF...
    
    with "whole sheet export" option'
    
    See bt here:
    https://bug-attachments.documentfoundation.org/attachment.cgi?id=194240
    
    Change-Id: I453882be5c8bb761a722482f9c94a2b2bb5c7dd4
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167890
    Reviewed-by: Julien Nabet <serval2...@yahoo.fr>
    Tested-by: Jenkins

diff --git a/sc/source/ui/unoobj/docuno.cxx b/sc/source/ui/unoobj/docuno.cxx
index 9a6d01a43ed1..13682da51960 100644
--- a/sc/source/ui/unoobj/docuno.cxx
+++ b/sc/source/ui/unoobj/docuno.cxx
@@ -2384,7 +2384,7 @@ static void lcl_SetMediaScreen(const 
uno::Reference<drawing::XShape>& xMediaShap
         pPDF->SetScreenURL(nScreenId, sMediaURL);
 }
 
-static void lcl_PDFExportMediaShapeScreen(const OutputDevice* pDev, const 
ScPrintState& rState,
+static void lcl_PDFExportMediaShapeScreen(const OutputDevice* pDev, const 
std::unique_ptr<ScPrintState>& rState,
                                           ScDocument& rDoc, SCTAB nTab, 
tools::Long nStartPage,
                                           bool bSinglePageSheets)
 {
@@ -2434,12 +2434,12 @@ static void lcl_PDFExportMediaShapeScreen(const 
OutputDevice* pDev, const ScPrin
                         if (bTopDown) // top-bottom page order
                         {
                             nX1 = 0;
-                            for (size_t i = 0; i < rState.m_aRanges.m_nPagesX; 
++i)
+                            for (size_t i = 0; i < 
rState->m_aRanges.m_nPagesX; ++i)
                             {
-                                nX2 = (*rState.m_aRanges.m_xPageEndX)[i];
-                                for (size_t j = 0; j < 
rState.m_aRanges.m_nPagesY; ++j)
+                                nX2 = (*rState->m_aRanges.m_xPageEndX)[i];
+                                for (size_t j = 0; j < 
rState->m_aRanges.m_nPagesY; ++j)
                                 {
-                                    auto& rPageRow = 
(*rState.m_aRanges.m_xPageRows)[j];
+                                    auto& rPageRow = 
(*rState->m_aRanges.m_xPageRows)[j];
                                     nY1 = rPageRow.GetStartRow();
                                     nY2 = rPageRow.GetEndRow();
 
@@ -2459,15 +2459,15 @@ static void lcl_PDFExportMediaShapeScreen(const 
OutputDevice* pDev, const ScPrin
                         }
                         else // left to right page order
                         {
-                            for (size_t i = 0; i < rState.m_aRanges.m_nPagesY; 
++i)
+                            for (size_t i = 0; i < 
rState->m_aRanges.m_nPagesY; ++i)
                             {
-                                auto& rPageRow = 
(*rState.m_aRanges.m_xPageRows)[i];
+                                auto& rPageRow = 
(*rState->m_aRanges.m_xPageRows)[i];
                                 nY1 = rPageRow.GetStartRow();
                                 nY2 = rPageRow.GetEndRow();
                                 nX1 = 0;
-                                for (size_t j = 0; j < 
rState.m_aRanges.m_nPagesX; ++j)
+                                for (size_t j = 0; j < 
rState->m_aRanges.m_nPagesX; ++j)
                                 {
-                                    nX2 = (*rState.m_aRanges.m_xPageEndX)[j];
+                                    nX2 = (*rState->m_aRanges.m_xPageEndX)[j];
 
                                     tools::Rectangle 
aPageRect(rDoc.GetMMRect(nX1, nY1, nX2, nY2, nTab));
                                     tools::Rectangle 
aTmpRect(aPageRect.GetIntersection(pObj->GetCurrentBoundRect()));
@@ -2590,7 +2590,7 @@ void SAL_CALL ScModelObj::render( sal_Int32 nSelRenderer, 
const uno::Any& aSelec
     tools::Long nTabStart = pPrintFuncCache->GetTabStart(nTab);
 
     if (nRenderer == nTabStart)
-        lcl_PDFExportMediaShapeScreen(pDev, *m_pPrintState, rDoc, nTab, 
nTabStart, bSinglePageSheets);
+        lcl_PDFExportMediaShapeScreen(pDev, m_pPrintState, rDoc, nTab, 
nTabStart, bSinglePageSheets);
 
     ScRange aRange;
     const ScRange* pSelRange = nullptr;

Reply via email to