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;