Scene: Fix memory leak
Detected by ASAN ``` Indirect leak of 2080 byte(s) in 10 object(s) allocated from: #0 0x4dc922 in operator new(unsigned long) (/home/kfunk/devel/install/kf5/bin/kwin_x11+0x4dc922) #1 0x7f43db47efd6 in QList<KWin::WindowQuad>::node_construct(QList<KWin::WindowQuad>::Node*, KWin::WindowQuad const&) /usr/include/x86_64-linux-gnu/qt5/QtCore/qlist.h:404:65 #2 0x7f43db47e51c in QList<KWin::WindowQuad>::append(KWin::WindowQuad const&) /usr/include/x86_64-linux-gnu/qt5/QtCore/qlist.h:553:13 #3 0x7f43db72787d in KWin::Scene::Window::makeQuads(KWin::WindowQuadType, QRegion const&, QPoint const&) const /home/kfunk/devel/src/kf5/kwin/scene.cpp:927:9 #4 0x7f43db725817 in KWin::Scene::Window::buildQuads(bool) const /home/kfunk/devel/src/kf5/kwin/scene.cpp:834:15 #5 0x7f43db899c79 in KWin::EffectWindowImpl::buildQuads(bool) const /home/kfunk/devel/src/kf5/kwin/effects.cpp:1700:12 #6 0x7f43db4666d6 in KWin::Shadow::createShadow(KWin::Toplevel*) /home/kfunk/devel/src/kf5/kwin/shadow.cpp:69:17 #7 0x7f43db6fb825 in KWin::Toplevel::getShadow() /home/kfunk/devel/src/kf5/kwin/toplevel.cpp:318:9 #8 0x7f43db7197dc in KWin::Scene::windowAdded(KWin::Toplevel*) /home/kfunk/devel/src/kf5/kwin/scene.cpp:408:5 #9 0x7f43db6d6b71 in KWin::Toplevel::setupCompositing() /home/kfunk/devel/src/kf5/kwin/composite.cpp:981:5 #10 0x7f43db6db215 in KWin::Client::setupCompositing() /home/kfunk/devel/src/kf5/kwin/composite.cpp:1248:10 #11 0x7f43db6c4517 in KWin::Compositor::startupWithWorkspace() /home/kfunk/devel/src/kf5/kwin/composite.cpp:329:9 #12 0x7f43db6c28db in KWin::Compositor::slotCompositingOptionsInitialized() /home/kfunk/devel/src/kf5/kwin/composite.cpp:283:9 #13 0x7f43db6beda4 in KWin::Compositor::setup() /home/kfunk/devel/src/kf5/kwin/composite.cpp:184:9 #14 0x7f43dbef60af in KWin::Compositor::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) /home/kfunk/devel/build/kf5/kwin/moc_composite.cpp:263:18 #15 0x7f43d54de7b0 in QObject::event(QEvent*) (/usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x2b67b0) #16 0x7f43d5da39db in QApplicationPrivate::notify_helper(QObject*, QEvent*) (/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x15b9db) ```icc-effect-5.14.5
parent
a66eb1a5b9
commit
43bd3e44e1
|
@ -676,7 +676,6 @@ Scene::Window::Window(Toplevel * c)
|
|||
|
||||
Scene::Window::~Window()
|
||||
{
|
||||
delete cached_quad_list;
|
||||
delete m_shadow;
|
||||
}
|
||||
|
||||
|
@ -715,8 +714,7 @@ void Scene::Window::discardShape()
|
|||
// it is created on-demand and cached, simply
|
||||
// reset the flag
|
||||
shape_valid = false;
|
||||
delete cached_quad_list;
|
||||
cached_quad_list = NULL;
|
||||
cached_quad_list.reset();
|
||||
}
|
||||
|
||||
// Find out the shape of the window using the XShape extension
|
||||
|
@ -853,7 +851,7 @@ WindowQuadList Scene::Window::buildQuads(bool force) const
|
|||
ret << m_shadow->shadowQuads();
|
||||
}
|
||||
effects->buildQuads(toplevel->effectWindow(), ret);
|
||||
cached_quad_list = new WindowQuadList(ret);
|
||||
cached_quad_list.reset(new WindowQuadList(ret));
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue