The method was missing a check whether the weak pointers in the
internal list got deleted. This could in very unlikely cases
lead to a crash.
In order to verify that adding the null pointer check fixes the
crash a unit test is added to simulate the situation of a
pointer being deleted. This required to add a mock a few
classes of TabBox. A MockTabBoxHandler and MockTabBoxClient are
added implementing the specific interfaces. The DeclarativeView
is completely mocked to make the linker happy. Including the
actual implementation is not possible as it pulls in half of
KWin core.
BUG: 303840
FIXED-IN: 4.9.0
REVIEW: 105645
being v2+ (right now it says just GPL, which according to GPL itself
means any GPL). Decoration clients will come later.
CCMAIL: kwin@kde.org
svn path=/trunk/KDE/kdebase/workspace/; revision=742302
Prefix all the #ifndef #define ... #endif symbols with KWIN_ , just in case
somebody uses CLIENT_H or so too.
And don't include config.h .
svn path=/trunk/kdebase/kwin/; revision=168940