d49fba5d30
Summary: The method xRenderBlendPicture created a static XRenderPicture on first usage. To cleanup a XRenderPicture an xcb_connection_t* is needed. As it's static the cleanup happens on exit handler and at that time Qt already destroyed the xcb_connection_t*. With a certain chance this will crash. To expose the problem a Q_ASSERT(qApp) is added in the destructor of XRenderPicture. Using xrenderBlendPicture() will hit this assert on application exit. This is demonstrated by the added auto test. The actual fix to the problem is moving the static variable out of the method and introduce a global cleanup method just like the init method. This is now called from Workspace dtor, so before application goes down. CCBUG: 363251 Reviewers: #plasma Subscribers: plasma-devel Tags: #plasma Differential Revision: https://phabricator.kde.org/D1731
11 lines
247 B
CMake
11 lines
247 B
CMake
add_executable(blendPictureTest blendpicture_test.cpp)
|
|
target_link_libraries(blendPictureTest
|
|
kwinxrenderutils
|
|
Qt5::Test
|
|
Qt5::Gui
|
|
Qt5::X11Extras
|
|
XCB::XCB
|
|
XCB::RENDER
|
|
XCB::XFIXES
|
|
)
|
|
ecm_mark_as_test(blendPictureTest)
|