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 908738a448df22237df99329d2e7141e168737d9 Author: Arrigo Marchiori <ard...@yahoo.it> AuthorDate: Fri Dec 9 17:43:46 2022 +0100 More checks --- main/svx/source/svdraw/svdoedge.cxx | 2 +- main/vcl/source/gdi/bmpacc.cxx | 53 ++++++++++++++++++++++--------------- 2 files changed, 32 insertions(+), 23 deletions(-) diff --git a/main/svx/source/svdraw/svdoedge.cxx b/main/svx/source/svdraw/svdoedge.cxx index 5bd1237c82..73f9c3f1bc 100644 --- a/main/svx/source/svdraw/svdoedge.cxx +++ b/main/svx/source/svdraw/svdoedge.cxx @@ -2262,7 +2262,7 @@ void SdrEdgeObj::NbcResize(const Point& rRefPnt, const Fraction& aXFact, const F ResizeXPoly(*pEdgeTrack,rRefPnt,aXFact,aYFact); // #75371# if resize is not from paste, forget user distances - if(!GetModel()->IsPasteResize()) + if(GetModel() && !GetModel()->IsPasteResize()) { // #75735# aEdgeInfo.aObj1Line2 = Point(); diff --git a/main/vcl/source/gdi/bmpacc.cxx b/main/vcl/source/gdi/bmpacc.cxx index dd594425dd..49a38cc9f5 100644 --- a/main/vcl/source/gdi/bmpacc.cxx +++ b/main/vcl/source/gdi/bmpacc.cxx @@ -107,31 +107,40 @@ void BitmapReadAccess::ImplCreate( Bitmap& rBitmap ) const long nHeight = mpBuffer->mnHeight; Scanline pTmpLine = mpBuffer->mpBits; - mpScanBuf = new Scanline[ nHeight ]; - maColorMask = mpBuffer->maColorMask; + try { + mpScanBuf = new Scanline[ nHeight ]; + } catch (std::bad_alloc &) { + mpScanBuf = NULL; + } + if (mpScanBuf) { + maColorMask = mpBuffer->maColorMask; - if( BMP_SCANLINE_ADJUSTMENT( mpBuffer->mnFormat ) == BMP_FORMAT_TOP_DOWN ) - { - for( long nY = 0L; nY < nHeight; nY++, pTmpLine += mpBuffer->mnScanlineSize ) - mpScanBuf[ nY ] = pTmpLine; - } - else - { - for( long nY = nHeight - 1; nY >= 0; nY--, pTmpLine += mpBuffer->mnScanlineSize ) - mpScanBuf[ nY ] = pTmpLine; - } + if( BMP_SCANLINE_ADJUSTMENT( mpBuffer->mnFormat ) == BMP_FORMAT_TOP_DOWN ) + { + for( long nY = 0L; nY < nHeight; nY++, pTmpLine += mpBuffer->mnScanlineSize ) + mpScanBuf[ nY ] = pTmpLine; + } + else + { + for( long nY = nHeight - 1; nY >= 0; nY--, pTmpLine += mpBuffer->mnScanlineSize ) + mpScanBuf[ nY ] = pTmpLine; + } - if( !ImplSetAccessPointers( BMP_SCANLINE_FORMAT( mpBuffer->mnFormat ) ) ) - { - delete[] mpScanBuf; - mpScanBuf = NULL; + if( !ImplSetAccessPointers( BMP_SCANLINE_FORMAT( mpBuffer->mnFormat ) ) ) + { + delete[] mpScanBuf; + mpScanBuf = NULL; - pImpBmp->ImplReleaseBuffer( mpBuffer, !mbModify ); - mpBuffer = NULL; - } - else - maBitmap = rBitmap; - } + pImpBmp->ImplReleaseBuffer( mpBuffer, !mbModify ); + mpBuffer = NULL; + } + else + maBitmap = rBitmap; + } else { + pImpBmp->ImplReleaseBuffer( mpBuffer, !mbModify ); + mpBuffer = NULL; + } + } } }