vcl/source/gdi/bmpacc.cxx | 2 -- 1 file changed, 2 deletions(-) New commits: commit b910f2f0ebd4b64efc829d826f315585db2efcea Author: Stephan Bergmann <sberg...@redhat.com> AuthorDate: Tue Jun 16 10:23:43 2020 +0200 Commit: Andras Timar <andras.ti...@collabora.com> CommitDate: Thu Jan 6 10:08:46 2022 +0100
Remove dubious assert "Forbidden Access to empty bitmap!" It had been added with d46c32140fdb05758c039dd27552b1788faac104 "assert in BitmapInfoAccess if bitmap is empty or we can't read from it", and <https://gerrit.libreoffice.org/c/core/+/55416/2# message-9db4353d06f66af8f8389d8ed9b84bd89209caf4> had argued: "This does not make sense. Either xImpBmp must be true here (in which case the following 'if' is an error) or not (in which case the assert is an error). Which is it?" To which <https://gerrit.libreoffice.org/c/core/+/55416/2# message-6a8c692d96ad63f78262909afa78a4222072f8c2> had responded: "because I wanted to catch problems in debug/assert mode, but still allow release builds to 'work', to some degree. Since this assert hasn't resulted in any bug reports yet, I think we can remove the if now" (but note that that removal apparently never happened until now; and <https://bugs.documentfoundation.org/show_bug.cgi?id=128001> "Assertion when accessing animation properties from sidebar" documents a case where it appears that the assert did help to highlight a real---albeit transient---error). But e.g. <https://ci.libreoffice.org/job/lo_tb_master_linux_dbg/29921/> now triggered that assert during CppunitTest_sw_uiwriter at > #7 0x00002acd75c651a6 in __assert_fail_base () at /lib64/libc.so.6 > #8 0x00002acd75c65252 in () at /lib64/libc.so.6 > #9 0x00002acd82871aa6 in BitmapInfoAccess::BitmapInfoAccess(Bitmap&, BitmapAccessMode) (this=0x5255030, rBitmap=..., nMode=Write) at /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/Python Exception <class 'gdb.error'> There is no member or method named _M_head_impl.: > vcl/source/gdi/bmpacc.cxx:38 > xImpBmp = std::shared_ptr (empty) 0x0 > #10 0x00002acd82871e36 in BitmapReadAccess::BitmapReadAccess(Bitmap&, BitmapAccessMode) (this=0x5255030, rBitmap=..., nMode=Write) at /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/vcl/source/gdi/bmpacc.cxx:89 > #11 0x00002acd828727b4 in BitmapWriteAccess::BitmapWriteAccess(Bitmap&) (this=0x5255030, rBitmap=...) at /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/vcl/source/gdi/bmpacc.cxx:355 > #12 0x00002acd82afbdae in Bitmap::AcquireWriteAccess() (this=0x7ffcfba67700) at /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/vcl/source/bitmap/bitmap.cxx:413 > pWriteAccess = > #13 0x00002acd8276ce03 in vcl::ScopedBitmapAccess<BitmapWriteAccess, Bitmap, &Bitmap::AcquireWriteAccess>::ScopedBitmapAccess(Bitmap&) (this=0x7ffcfba676e0, rBitmap=...) at /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/include/vcl/scopedbitmapaccess.hxx:53 > #14 0x00002acd82b07bec in BitmapDisabledImageFilter::execute(BitmapEx const&) const (this=0x7ffcfba67a88, rBitmapEx=...) at /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/vcl/source/bitmap/BitmapDisabledImageFilter.cxx:28 > aSize = Size = {width = 0, height = 0} > nBitCount = 8 > pPal = 0x2acd83a65980 <Bitmap::GetGreyPalette(int)::aGreyPalette256> > aGrey = {_vptr.Bitmap = 0x2acd83a16868 <vtable for Bitmap+16>, mxSalBmp = std::shared_ptr (empty) 0x0, maPrefMapMode = {mpImplMapMode = {m_pimpl = 0x1d91070}}, maPrefSize = Size = {width = 0, height = 0}} > pGrey = {mpAccess = 0x0, mpBitmap = 0x7ffcfba67700} > aReturnBitmap = {maBitmap = {_vptr.Bitmap = 0x0, mxSalBmp = std::shared_ptr (count -2107407548, weak 10956) 0x50ad5e8, maPrefMapMode = {mpImplMapMode = {m_pimpl = 0x2acd823407d9 <Bitmap::operator!() const+33>}}, maPrefSize = Size = {width = 140724530477216, height = 84596192}}, maMask = {_vptr.Bitmap = 0x7ffcfba678b0, mxSalBmp = std::shared_ptr (count -1736603320, weak -1871345337) 0x2acd82638344 <BitmapEx::operator!() const+24>, maPrefMapMode = {mpImplMapMode = {m_pimpl = 0x50ad560}}, maPrefSize = Size = {width = 140724530477664, height = 47062149486690}}, maBitmapSize = Size = {width = 4607182418800017408, height = 84596016}, maTransparentColor = rgb(0, 0, 0), meTransparent = NONE, mbAlpha = false} > aReadBitmap = {_vptr.Bitmap = 0xffffffff00000000, mxSalBmp = std::shared_ptr (count 7274595, weak 6881387) 0x215a600, maPrefMapMode = {mpImplMapMode = {m_pimpl = 0x2acd752acaa9 <__gnu_debug::_Safe_sequence_base::_M_get_mutex()+9>}}, maPrefSize = Size = {width = 0, height = 0}} > pRead = {mpAccess = 0x0, mpBitmap = 0x0} > #15 0x00002acd82aff64a in BitmapFilter::Filter(BitmapEx&, BitmapFilter const&) (rBmpEx=..., rFilter=...) at /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/vcl/source/bitmap/bitmapfilter.cxx:22 > aTmpBmpEx = {maBitmap = {_vptr.Bitmap = 0x0, mxSalBmp = std::shared_ptr (count -2107407548, weak 10956) 0x50ad5e8, maPrefMapMode = {mpImplMapMode = {m_pimpl = 0x2acd823407d9 <Bitmap::operator!() const+33>}}, maPrefSize = Size = {width = 140724530477216, height = 84596192}}, maMask = {_vptr.Bitmap = 0x7ffcfba678b0, mxSalBmp = std::shared_ptr (count -1736603320, weak -1871345337) 0x2acd82638344 <BitmapEx::operator!() const+24>, maPrefMapMode = {mpImplMapMode = {m_pimpl = 0x50ad560}}, maPrefSize = Size = {width = 140724530477664, height = 47062149486690}}, maBitmapSize = Size = {width = 4607182418800017408, height = 84596016}, maTransparentColor = rgb(0, 0, 0), meTransparent = NONE, mbAlpha = false} > #16 0x00002acd82b3da59 in ImplImage::getBitmapEx(bool) (this=0x50ad530, bDisabled=true) at /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/vcl/source/image/ImplImage.cxx:123 > aChecksum = 1063942691015340773 > #17 0x00002acd82b3dc35 in ImplImage::getBitmapExForHiDPI(bool) (this=0x50ad530, bDisabled=true) at /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/vcl/source/image/ImplImage.cxx:153 > #18 0x00002acd82b3aa6f in Image::Draw(OutputDevice*, Point const&, DrawImageFlags, Size const*) (this=0x5008650, pOutDev=0x4f695c0, rPos=Point = {...}, nStyle=Disable, pSize=0x0) at /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/vcl/source/image/Image.cxx:123 > aOutSize = Size = {width = 0, height = 0} > aRenderBmp = warning: can't find linker symbol for virtual table for `std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>' value > warning: found `typeinfo for DockingWindow' instead > warning: can't find linker symbol for virtual table for `std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>' value > warning: found `typeinfo for DockingWindow' instead > warning: can't find linker symbol for virtual table for `Bitmap' value > warning: found `typeinfo for DockingWindow' instead > warning: RTTI symbol not found for class '__cxxabiv1::__vmi_class_type_info' > warning: RTTI symbol not found for class '__cxxabiv1::__vmi_class_type_info' > Python Exception <class 'gdb.error'> There is no member or method named _M_head_impl.: > {maBitmap = {_vptr.Bitmap = 0x0, mxSalBmp = std::shared_ptr (expired, weak 0) 0x50ad5e8, maPrefMapMode = {mpImplMapMode = {m_pimpl = 0x2acd823407d9 <Bitmap::operator!() const+33>}}, maPrefSize = Size = {width = 140724530478112, height = 140724530478352}}, maMask = {_vptr.Bitmap = 0x2acd8398b038 <typeinfo for DockingWindow+32>, mxSalBmp = std::shared_ptr (count -2095382144, weak 10956) 0x0, maPrefMapMode = {mpImplMapMode = {m_pimpl = 0x4f695c0}}, maPrefSize = Size = {width = 83269056, height = 47061922066318}}, maBitmapSize = Size = {width = 83269056, height = 140724530478240}, maTransparentColor = rgb(0, 0, 0), meTransparent = NONE, mbAlpha = false} > #19 0x00002acd8277485c in OutputDevice::DrawImage(Point const&, Size const&, Image const&, DrawImageFlags) (this=0x4f695c0, rPos=Point = {...}, rSize=Size = {...}, rImage=..., nStyle=Disable) at /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/vcl/source/outdev/bitmap.cxx:1466 > rNonConstImage = @0x5008650: {mpImplData = std::shared_ptr (count 1, weak 0) 0x50ad530} > __PRETTY_FUNCTION__ = "void OutputDevice::DrawImage(const Point&, const Size&, const Image&, DrawImageFlags)" > bIsSizeValid = false > #20 0x00002acd82774786 in OutputDevice::DrawImage(Point const&, Image const&, DrawImageFlags) (this=0x4f695c0, rPos=Point = {...}, rImage=..., nStyle=Disable) at /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/vcl/source/outdev/bitmap.cxx:1450 > __PRETTY_FUNCTION__ = "void OutputDevice::DrawImage(const Point&, const Image&, DrawImageFlags)" > #21 0x00002acd8257a3da in ToolBox::ImplDrawItem(OutputDevice&, unsigned long, unsigned short) (this=0x4f695c0, rRenderContext=..., nPos=0, nHighlight=0) at /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/vcl/source/window/toolbox.cxx:2697 > pImage = 0x5008650 > nImageStyle = Disable > pItem = 0x5008630 > rStyleSettings = @0x2159a50: {mxData = std::shared_ptr (count 3, weak 0) 0x215a210} > bHasOpenPopup = false > bHighContrastWhite = false > aBtnSize = Size = {width = 7, height = 7} > aButtonRect = {static RECT_EMPTY = -32767, nLeft = 0, nTop = 8, nRight = 6, nBottom = 14} > nOffX = 3 > nOffY = 11 > nImageOffX = 3 > nImageOffY = 11 > nStyle = NONE > bImage = true > bText = false > tmpButtonType = SYMBOLONLY > nBtnWidth = 0 > nBtnHeight = 0 > aImageSize = Size = {width = 0, height = 0} > aTxtSize = Size = {width = 0, height = 0} > bRotate = 158 > #22 0x00002acd8257d230 in ToolBox::Paint(OutputDevice&, tools::Rectangle const&) (this=0x4f695c0, rRenderContext=..., rPaintRect=...) at /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/vcl/source/window/toolbox.cxx:3491 > nHighlight = 0 > pItem = 0x5008630 > i = 0 > nHighPos = 18446744073709551615 > nCount = 3 > #23 0x00002acd8235e803 in PaintHelper::DoPaint(vcl::Region const*) (this=0x7ffcfba68280, pRegion=0x691b9a0) at /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/vcl/source/window/paint.cxx:311 > aBackground = {mpImplWallpaper = {m_pimpl = 0x4ddb8a0}} > pWindowImpl = 0x344a620 > pWinChildClipRegion = 0x344aa10 > pFrameData = 0x50962e0 > #24 0x00002acd8235fd24 in vcl::Window::ImplCallPaint(vcl::Region const*, ImplPaintFlags) (this=0x4f695c0, pRegion=0x691b9a0, nPaintFlags=(PaintAll | PaintChildren | Erase)) at /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/vcl/source/window/paint.cxx:615 > aHelper = {m_pWindow = {_vptr.VclPtr = 0x2acd8392fa18 <vtable for VclPtr<vcl::Window>+16>, m_rInnerRef = rtl::Reference to 0x4f695c0}, m_pChildRegion = , m_aSelectionRect = {static RECT_EMPTY = -32767, nLeft = 0, nTop = 0, nRight = -32767, nBottom = -32767}, m_aPaintRect = {static RECT_EMPTY = -32767, nLeft = 0, nTop = 0, nRight = 20, nBottom = 22}, m_aPaintRegion = {mpB2DPolyPolygon = std::shared_ptr (empty) 0x0, mpPolyPolygon = std::shared_ptr (empty) 0x0, mpRegionBand = std::shared_ptr (count 2, weak 0) 0x51d40a0, mbIsNull = false}, m_nPaintFlags = (PaintAll | PaintCPython Exception <class 'gdb.error'> There is no member or method named _M_head_impl.: > Python Exception <class 'gdb.error'> There is no member or method named _M_head_impl.: > Python Exception <class 'gdb.error'> There is no member or method named _M_head_impl.: > hildren | Erase), m_bPop = true, m_bRestoreCursor = false, m_bStartedBufferedPaint = false} > #25 0x00002acd8235f6e2 in PaintHelper::~PaintHelper() (this=0x7ffcfba683f0, __in_chrg=<optimized out>) at /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/vcl/source/window/paint.cxx:551 > pTempWindow = 0x4f695c0 > pWindowImpl = 0x4ec5e30 > pFrameData = 0x50962e0 > #26 0x00002acd8235fd7d in vcl::Window::ImplCallPaint(vcl::Region const*, ImplPaintFlags) (this=0x505c2f0, pRegion=0x2b017b0, nPaintFlags=(PaintAllChildren | PaintChildren | Erase)) at /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/vcl/source/window/paint.cxx:612 > aHelper = {m_pWindow = {_vptr.VclPtr = 0x2acd8392fa18 <vtable for VclPtr<vcl::Window>+16>, m_rInnerRef = rtl::Reference to 0x505c2f0}, m_pChildRegion = , m_aSelectionRect = {static RECT_EMPTY = -32767, nLeft = 0, nTop = 0, nRight = -32767, nBottom = -32767}, m_aPaintRect = {static RECT_EMPTY = -32767, nLeft = 219, nTop = 0, nRight = 224, nBottom = 22}, m_aPaintRegion = {mpB2DPolyPolygon = std::shared_ptr (empty) 0x0, mpPolyPolygon = std::shared_ptr (empty) 0x0, mpRegionBand = std::shared_ptr (count 1, weak 0) 0x3611760, mbIsNull = false}, m_nPaintFlags = (PaintAllChildren | PaintChildren | Erase), m_bPop = true, m_bRestoreCursor = false, m_bStartedBufferedPaint = false} > #27 0x00002acd8235f6e2 in PaintHelper::~PaintHelper() (this=0x7ffcfba68560, __in_chrg=<optimized out>) at /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/vcl/source/window/paint.cxx:551 > pTempWindow = 0x505c2f0 > pWindowImpl = 0x4e1bb50 > pFrameData = 0x50962e0 > #28 0x00002acd8235fd7d in vcl::Window::ImplCallPaint(vcl::Region const*, ImplPaintFlags) (this=0x4c02270, pRegion=0x4bd7f40, nPaintFlags=(PaintAllChildren | PaintChildren | Erase)) at /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/vcl/source/window/paint.cxx:612 > aHelper = {m_pWindow = {_vptr.VclPtr = 0x2acd8392fa18 <vtable for VclPtr<vcl::Window>+16>, m_rInnerRef = rtl::Reference to 0x4c02270}, m_pChildRegion = , m_aSelectionRect = {static RECT_EMPTY = -32767, nLeft = 0, nTop = 0, nRight = -32767, nBottom = -32767}, m_aPaintRect = {static RECT_EMPTY = -32767, nLeft = 0, nTop = 0, nRight = -32767, nBottom = -32767}, m_aPaintRegion = {mpB2DPolyPolygon = std::shared_ptr (empty) 0x0, mpPolyPolygon = std::shared_ptr (empty) 0x0, mpRegionBand = std::shared_ptr (empty) 0x0, mbIsNull = false}, m_nPaintFlags = (PaintAllChildren | PaintChildren | Erase), m_bPop = false, m_bRestoreCursor = false, m_bStartedBufferedPaint = false} > #29 0x00002acd8235f6e2 in PaintHelper::~PaintHelper() (this=0x7ffcfba686d0, __in_chrg=<optimized out>) at /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/vcl/source/window/paint.cxx:551 > pTempWindow = 0x4c02270 > pWindowImpl = 0x4dda7e0 > pFrameData = 0x50962e0 > #30 0x00002acd8235fd7d in vcl::Window::ImplCallPaint(vcl::Region const*, ImplPaintFlags) (this=0x50ce0a0, pRegion=0x56b3350, nPaintFlags=(PaintAllChildren | PaintChildren | Erase)) at /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/vcl/source/window/paint.cxx:612 > aHelper = {m_pWindow = {_vptr.VclPtr = 0x2acd8392fa18 <vtable for VclPtr<vcl::Window>+16>, m_rInnerRef = rtl::Reference to 0x50ce0a0}, m_pChildRegion = , m_aSelectionRect = {static RECT_EMPTY = -32767, nLeft = 0, nTop = 0, nRight = -32767, nBottom = -32767}, m_aPaintRect = {static RECT_EMPTY = -32767, nLeft = 0, nTop = 0, nRight = -32767, nBottom = -32767}, m_aPaintRegion = {mpB2DPolyPolygon = std::shared_ptr (empty) 0x0, mpPolyPolygon = std::shared_ptr (empty) 0x0, mpRegionBand = std::shared_ptr (empty) 0x0, mbIsNull = false}, m_nPaintFlags = (PaintAllChildren | PaintChildren | Erase), m_bPop = false, m_bRestoreCursor = false, m_bStartedBufferedPaint = false} > #31 0x00002acd8235f6e2 in PaintHelper::~PaintHelper() (this=0x7ffcfba68840, __in_chrg=<optimized out>) at /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/vcl/source/window/paint.cxx:551 > pTempWindow = 0x50ce0a0 > pWindowImpl = 0x52dfbe0 > pFrameData = 0Python Exception <class 'gdb.error'> There is no member or method named _M_head_impl.: > Python Exception <class 'gdb.error'> There is no member or method named _M_head_impl.: > Python Exception <class 'gdb.error'> There is no member or method named _M_head_impl.: > Python Exception <class 'gdb.error'> There is no member or method named _M_head_impl.: > x50962e0 > #32 0x00002acd8235fd7d in vcl::Window::ImplCallPaint(vcl::Region const*, ImplPaintFlags) (this=0x533f890, pRegion=0x56e6d40, nPaintFlags=(PaintAllChildren | PaintChildren | Erase)) at /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/vcl/source/window/paint.cxx:612 > aHelper = {m_pWindow = {_vptr.VclPtr = 0x2acd8392fa18 <vtable for VclPtr<vcl::Window>+16>, m_rInnerRef = rtl::Reference to 0x533f890}, m_pChildRegion = , m_aSelectionRect = {static RECT_EMPTY = -32767, nLeft = 0, nTop = 0, nRight = -32767, nBottom = -32767}, m_aPaintRect = {static RECT_EMPTY = -32767, nLeft = 0, nTop = 0, nRight = -32767, nBottom = -32767}, m_aPaintRegion = {mpB2DPolyPolygon = std::shared_ptr (empty) 0x0, mpPolyPolygon = std::shared_ptr (empty) 0x0, mpRegionBand = std::shared_ptr (empty) 0x0, mbIsNull = false}, m_nPaintFlags = (PaintAllChildren | PaintChildren | Erase), m_bPop = false, m_bRestoreCursor = false, m_bStartedBufferedPaint = false} > #33 0x00002acd8235f6e2 in PaintHelper::~PaintHelper() (this=0x7ffcfba689b0, __in_chrg=<optimized out>) at /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/vcl/source/window/paint.cxx:551 > pTempWindow = 0x533f890 > pWindowImpl = 0x4c53a60 > pFrameData = 0x50962e0 > #34 0x00002acd8235fd7d in vcl::Window::ImplCallPaint(vcl::Region const*, ImplPaintFlags) (this=0x51f0b20, pRegion=0x0, nPaintFlags=(PaintAllChildren | PaintChildren | Erase)) at /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/vcl/source/window/paint.cxx:612 > aHelper = {m_pWindow = {_vptr.VclPtr = 0x2acd8392fa18 <vtable for VclPtr<vcl::Window>+16>, m_rInnerRef = rtl::Reference to 0x51f0b20}, m_pChildRegion = , m_aSelectionRect = {static RECT_EMPTY = -32767, nLeft = 0, nTop = 0, nRight = -32767, nBottom = -32767}, m_aPaintRect = {static RECT_EMPTY = -32767, nLeft = 132, nTop = 6, nRight = 251, nBottom = 190}, m_aPaintRegion = {mpB2DPolyPolygon = std::shared_ptr (empty) 0x0, mpPolyPolygon = std::shared_ptr (empty) 0x0, mpRegionBand = std::shared_ptr (count 2, weak 0) 0x56822e0, mbIsNull = false}, m_nPaintFlags = (PaintAllChildren | PaintChildren | Erase), m_bPop = true, m_bRestoreCursor = false, m_bStartedBufferedPaint = false} > #35 0x00002acd8235f6e2 in PaintHelper::~PaintHelper() (this=0x7ffcfba68b20, __in_chrg=<optimized out>) at /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/vcl/source/window/paint.cxx:551 > pTempWindow = 0x51f0b20 > pWindowImpl = 0x4f521b0 > pFrameData = 0x50962e0 > #36 0x00002acd8235fd7d in vcl::Window::ImplCallPaint(vcl::Region const*, ImplPaintFlags) (this=0x4f0e7c0, pRegion=0x0, nPaintFlags=PaintChildren) at /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/vcl/source/window/paint.cxx:612 > aHelper = {m_pWindow = {_vptr.VclPtr = 0x2acd8392fa18 <vtable for VclPtr<vcl::Window>+16>, m_rInnerRef = rtl::Reference to 0x4f0e7c0}, m_pChildRegion = , m_aSelectionRect = {static RECT_EMPTY = -32767, nLeft = 0, nTop = 0, nRight = -32767, nBottom = -32767}, m_aPaintRect = {static RECT_EMPTY = -32767, nLeft = 0, nTop = 0, nRight = -32767, nBottom = -32767}, m_aPaintRegion = {mpB2DPolyPolygon = std::shared_ptr (empty) 0x0, mpPolyPolygon = std::shared_ptr (empty) 0x0, mpRegionBand = std::shared_ptr (empty) 0x0, mbIsNull = false}, m_nPaintFlags = PaintChildren, m_bPop = false, m_bRestoreCursor = false, m_bStartedBufferedPaint = false} > #37 0x00002acd8235f6e2 in PaintHelper::~PaintHelper() (this=0x7ffcfba68c90, __in_chrg=<optimized out>) at /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/vcl/source/window/paint.cxx:551 > pTempWindow = 0x4f0e7c0 > pWindowImpl = 0x4e5d6a0 > pFrameData = 0x50962e0 > #38 0x00002acd8235fd7d in vcl::Window::ImplCallPaint(vcl::Region const*, ImplPaintFlags) (this=0x50d33b0, pRegion=0x0, nPaintFlags=PaintChildren) at /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/vcl/source/window/paint.cxx:612 > aHelper = {m_pWindow = {_vptr.VclPtr = 0x2acd8392fa18 <vtable for VclPtr<vcl::Window>+16>, m_rInnerRef = rtl::Reference to 0x50d33b0}, m_pChildRegion = , m_aSelectionRect = {static RECT_EPython Exception <class 'gdb.error'> There is no member or method named _M_head_impl.: > Python Exception <class 'gdb.error'> There is no member or method named _M_head_impl.: > Python Exception <class 'gdb.error'> There is no member or method named _M_head_impl.: > MPTY = -32767, nLeft = 0, nTop = 0, nRight = -32767, nBottom = -32767}, m_aPaintRect = {static RECT_EMPTY = -32767, nLeft = 0, nTop = 0, nRight = -32767, nBottom = -32767}, m_aPaintRegion = {mpB2DPolyPolygon = std::shared_ptr (empty) 0x0, mpPolyPolygon = std::shared_ptr (empty) 0x0, mpRegionBand = std::shared_ptr (empty) 0x0, mbIsNull = false}, m_nPaintFlags = PaintChildren, m_bPop = false, m_bRestoreCursor = false, m_bStartedBufferedPaint = false} > #39 0x00002acd8235f6e2 in PaintHelper::~PaintHelper() (this=0x7ffcfba68e00, __in_chrg=<optimized out>) at /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/vcl/source/window/paint.cxx:551 > pTempWindow = 0x50d33b0 > pWindowImpl = 0x4ccb7f0 > pFrameData = 0x50962e0 > #40 0x00002acd8235fd7d in vcl::Window::ImplCallPaint(vcl::Region const*, ImplPaintFlags) (this=0x52e4de0, pRegion=0x0, nPaintFlags=PaintChildren) at /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/vcl/source/window/paint.cxx:612 > aHelper = {m_pWindow = {_vptr.VclPtr = 0x2acd8392fa18 <vtable for VclPtr<vcl::Window>+16>, m_rInnerRef = rtl::Reference to 0x52e4de0}, m_pChildRegion = , m_aSelectionRect = {static RECT_EMPTY = -32767, nLeft = 0, nTop = 0, nRight = -32767, nBottom = -32767}, m_aPaintRect = {static RECT_EMPTY = -32767, nLeft = 0, nTop = 0, nRight = -32767, nBottom = -32767}, m_aPaintRegion = {mpB2DPolyPolygon = std::shared_ptr (empty) 0x0, mpPolyPolygon = std::shared_ptr (empty) 0x0, mpRegionBand = std::shared_ptr (empty) 0x0, mbIsNull = false}, m_nPaintFlags = PaintChildren, m_bPop = false, m_bRestoreCursor = false, m_bStartedBufferedPaint = false} > #41 0x00002acd8235f6e2 in PaintHelper::~PaintHelper() (this=0x7ffcfba68f70, __in_chrg=<optimized out>) at /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/vcl/source/window/paint.cxx:551 > pTempWindow = 0x52e4de0 > pWindowImpl = 0x4cc8950 > pFrameData = 0x50962e0 > #42 0x00002acd8235fd7d in vcl::Window::ImplCallPaint(vcl::Region const*, ImplPaintFlags) (this=0x4d8bf30, pRegion=0x0, nPaintFlags=PaintChildren) at /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/vcl/source/window/paint.cxx:612 > aHelper = {m_pWindow = {_vptr.VclPtr = 0x2acd8392fa18 <vtable for VclPtr<vcl::Window>+16>, m_rInnerRef = rtl::Reference to 0x4d8bf30}, m_pChildRegion = , m_aSelectionRect = {static RECT_EMPTY = -32767, nLeft = 0, nTop = 0, nRight = -32767, nBottom = -32767}, m_aPaintRect = {static RECT_EMPTY = -32767, nLeft = 0, nTop = 0, nRight = -32767, nBottom = -32767}, m_aPaintRegion = {mpB2DPolyPolygon = std::shared_ptr (empty) 0x0, mpPolyPolygon = std::shared_ptr (empty) 0x0, mpRegionBand = std::shared_ptr (empty) 0x0, mbIsNull = false}, m_nPaintFlags = PaintChildren, m_bPop = false, m_bRestoreCursor = false, m_bStartedBufferedPaint = false} > #43 0x00002acd8235f6e2 in PaintHelper::~PaintHelper() (this=0x7ffcfba690e0, __in_chrg=<optimized out>) at /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/vcl/source/window/paint.cxx:551 > pTempWindow = 0x4d8bf30 > pWindowImpl = 0x4ccbd40 > pFrameData = 0x50962e0 > #44 0x00002acd8235fd7d in vcl::Window::ImplCallPaint(vcl::Region const*, ImplPaintFlags) (this=0x56eb630, pRegion=0x0, nPaintFlags=PaintChildren) at /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/vcl/source/window/paint.cxx:612 > aHelper = {m_pWindow = {_vptr.VclPtr = 0x2acd8392fa18 <vtable for VclPtr<vcl::Window>+16>, m_rInnerRef = rtl::Reference to 0x56eb630}, m_pChildRegion = , m_aSelectionRect = {static RECT_EMPTY = -32767, nLeft = 0, nTop = 0, nRight = -32767, nBottom = -32767}, m_aPaintRect = {static RECT_EMPTY = -32767, nLeft = 0, nTop = 0, nRight = -32767, nBottom = -32767}, m_aPaintRegion = {mpB2DPolyPolygon = std::shared_ptr (empty) 0x0, mpPolyPolygon = std::shared_ptr (empty) 0x0, mpRegionBand = std::shared_ptr (empty) 0x0, mbIsNull = false}, m_nPaintFlags = PaintChildren, m_bPop = false, m_bRestoreCursor = false, m_bStartedBufferedPaint = false} > #45 0x00002acd8235f6e2 in PaintHelper::~PaintHelper() (this=0x7ffcfba69250, __in_chrg=<optimized out>) at /home/tdf/lode/Python Exception <class 'gdb.error'> There is no member or method named _M_head_impl.: > jenkins/workspace/lo_tb_master_linux_dbg/vcl/source/window/paint.cxx:551 > pTempWindow = 0x56eb630 > pWindowImpl = 0x4e06d10 > pFrameData = 0x50962e0 > #46 0x00002acd8235fd7d in vcl::Window::ImplCallPaint(vcl::Region const*, ImplPaintFlags) (this=0x5675000, pRegion=0x0, nPaintFlags=PaintChildren) at /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/vcl/source/window/paint.cxx:612 > aHelper = {m_pWindow = {_vptr.VclPtr = 0x2acd8392fa18 <vtable for VclPtr<vcl::Window>+16>, m_rInnerRef = rtl::Reference to 0x5675000}, m_pChildRegion = , m_aSelectionRect = {static RECT_EMPTY = -32767, nLeft = 0, nTop = 0, nRight = -32767, nBottom = -32767}, m_aPaintRect = {static RECT_EMPTY = -32767, nLeft = 0, nTop = 0, nRight = -32767, nBottom = -32767}, m_aPaintRegion = {mpB2DPolyPolygon = std::shared_ptr (empty) 0x0, mpPolyPolygon = std::shared_ptr (empty) 0x0, mpRegionBand = std::shared_ptr (empty) 0x0, mbIsNull = false}, m_nPaintFlags = PaintChildren, m_bPop = false, m_bRestoreCursor = false, m_bStartedBufferedPaint = false} > #47 0x00002acd8235fec4 in vcl::Window::ImplCallOverlapPaint() (this=0x5675000) at /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/vcl/source/window/paint.cxx:639 > pTempWindow = 0x0 > #48 0x00002acd8236003e in vcl::Window::ImplHandlePaintHdl(Timer*) (this=0x5675000) at /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/vcl/source/window/paint.cxx:662 > aZone = {m_sProfileId = 0x2acd830b598f "VCL idle re-paint", m_aCreateTime = 0, m_bConsole = false, static g_bRecording = {_M_base = {static _S_alignment = 1, _M_i = false}, static is_always_lock_free = true}} > #49 0x00002acd8235ff03 in vcl::Window::LinkStubImplHandlePaintHdl(void*, Timer*) (instance=0x5675000, data=0x50962e0) at /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/vcl/source/window/paint.cxx:643 > #50 0x00002acd82c4abb3 in Link<Timer*, void>::Call(Timer*) const (this=0x5096300, data=0x50962e0) at /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/include/tools/link.hxx:111 > #51 0x00002acd82c4aa4b in Timer::Invoke() (this=0x50962e0) at /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/vcl/source/app/timer.cxx:75 > #52 0x00002acd82c0061f in Scheduler::ProcessTaskScheduling() () at /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/vcl/source/app/scheduler.cxx:478 > pTask = 0x50962e0 > aZone = {m_sProfileId = 0x2acd8313ad08 "vcl::Window maPaintIdle", m_aCreateTime = 0, m_bConsole = false, static g_bRecording = {_M_base = {static _S_alignment = 1, _M_i = false}, static is_always_lock_free = true}} > nLockCount = 1 > bTaskAlive = true > pSVData = 0x2acd83a85ee0 <rtl::Static<ImplSVData, (anonymous namespace)::private_aImplSVData>::get()::instance> > rSchedCtx = @0x2acd83a85f28: {mpFirstSchedulerData = {0x0, 0x4bf43c0, 0x0, 0x0, 0x0, 0x0, 0x505c870, 0x509e230}, mpLastSchedulerData = {0x0, 0x4d47ed0, 0x0, 0x0, 0x0, 0x0, 0x54eefd0, 0x5101b60}, mpSchedulerStack = 0x56e66a0, mpSchedulerStackTop = 0x56e66a0, mpSalTimer = 0x1e52f40, mnTimerStart = 1592278939202, mnTimerPeriod = 0, maMutex = {mnLockDepth = 0, maMutex = {mutex = 0xf9c630}}, mbActive = true} > aSchedulerGuard = {<No data fields>} > nTime = 1592278939202 > pSchedulerData = 0x505c870 > pPrevSchedulerData = 0x0 > pMostUrgent = 0x56e66a0 > pPrevMostUrgent = 0x0 > nMostUrgentPriority = 4 > nMinPeriod = 0 > nReadyPeriod = 0 > nTasks = 6 > nTaskPriority = 6 > __PRETTY_FUNCTION__ = "static bool Scheduler::ProcessTaskScheduling()" > #53 0x00002acd82bffa5d in Scheduler::CallbackTaskScheduling() () at /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/vcl/source/app/scheduler.cxx:287 > #54 0x00002acd82e0c7b1 in SalTimer::CallCallback() (this=0x1e52f40) at /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/vcl/inc/saltimer.hxx:54 > #55 0x00002acd82e0b167 in SvpSalInstance::CheckTimeout(bool) (this=0xfa0f70, bExecuteTimers=true) at /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/vcl/headless/svpinst.cxx:209 > aGuard = {pT = 0xf973d0} > pSVData = 0x2acd83a85ee0 <rtl::Static<ImplSVData, (anonymous namespace)::private_aImplSVData>::get()::instance> > aTimeOfDay = {tv_sec = 1592278939, tv_usec = 202344} > bRet = true > #56 0x00002acd82e0bd34 in SvpSalInstance::DoYield(bool, bool) (this=0xfa0f70, bWait=false, bHandleAllCurrentEvents=true) at /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/vcl/headless/svpinst.cxx:444 > __PRETTY_FUNCTION__ = "virtual bool SvpSalInstance::DoYield(bool, bool)" > bEvent = true > pSVData = 0x2acd83a85ee0 <rtl::Static<ImplSVData, (anonymous namespace)::private_aImplSVData>::get()::instance> > bTimeout = true > bSkipPoll = true > pMutex = 0xc > #57 0x00002acd82c2b024 in ImplYield(bool, bool) (i_bWait=false, i_bAllEvents=true) at /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/vcl/source/app/svapp.cxx:455 > pSVData = 0x2acd83a85ee0 <rtl::Static<ImplSVData, (anonymous namespace)::private_aImplSVData>::get()::instance> > bProcessedEvent = true > #58 0x00002acd82c2b15f in Application::Reschedule(bool) (i_bAllEvents=true) at /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/vcl/source/app/svapp.cxx:468 > #59 0x00002acd82c2b191 in Scheduler::ProcessEventsToIdle() () at /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/vcl/source/app/svapp.cxx:474 > nSanity = 77 > pSVData = 0x2acd7cf4f274 <comphelper::SolarMutex::IsCurrentThread() const+36> > #60 0x00002acd8e38c0af in testTdf76636::TestBody() (this=0x1e2de30) at /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/sw/qa/extras/uiwriter/uiwriter3.cxx:200 > pTextDoc = 0x4e8ec90 > xTextTablesSupplier = uno::Reference to (SwXTextDocument *) 0x4e8ed00 > xIndexAccess = uno::Reference to (SwXTextTables *) 0x61781f0 > xTextTable = uno::Reference to (SwXTextTable *) 0x366ebc8 What apparently happens is that an icon shall be painted at size 0x0 (whether or not that request is legal, or the consequence of another error). BitmapDisabledImageFilter::execute (vcl/source/bitmap/BitmapDisabledImageFilter.cxx, called in frame 14) contains if (pRead && pGrey) that would specifically address the case where the given rBitmapEx is empty, but that only comes after the assert has already fired. Change-Id: I3e6e1bacfb6e502047b9f3f7a13602562673cd06 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/96435 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sberg...@redhat.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127970 Tested-by: Andras Timar <andras.ti...@collabora.com> Reviewed-by: Andras Timar <andras.ti...@collabora.com> diff --git a/vcl/source/gdi/bmpacc.cxx b/vcl/source/gdi/bmpacc.cxx index 4b0b42f5d268..67a0bf03eba0 100644 --- a/vcl/source/gdi/bmpacc.cxx +++ b/vcl/source/gdi/bmpacc.cxx @@ -35,8 +35,6 @@ BitmapInfoAccess::BitmapInfoAccess( Bitmap& rBitmap, BitmapAccessMode nMode ) : { std::shared_ptr<SalBitmap> xImpBmp = rBitmap.ImplGetSalBitmap(); - assert( xImpBmp && "Forbidden Access to empty bitmap!" ); - if( !xImpBmp ) return;