Diffusion KWin 8c70600f1340

[effects] Clean up effect_order in unloadAllEffects

Authored by zzag on Dec 1 2018, 4:33 PM.

Description

[effects] Clean up effect_order in unloadAllEffects

Summary:
EffectsHandlerImpl::unloadAllEffects can be very useful when writing
tests, e.g.:

auto effectsImpl = qobect_cast<EffectsHandlerImpl *>(effects);
QVERIFY(effectsImpl);

effectsImpl->unloadAllEffects();
QVERIFY(effectsImpl->loadEffect(QStringLiteral("kwin5_effect_foobar")));

but because unloadAllEffects doesn't clean up effect_order, the old
effects can be re-added back into loaded_effects when a new effect is
loaded. Such behavior can result in a segfault.

Test Plan: Existing tests pass.

Reviewers: KWin, graesslin

Reviewed By: KWin, graesslin

Subscribers: kwin

Tags: KWin

Differential Revision: https://phabricator.kde.org/D17283

Details

Committed
zzagDec 1 2018, 5:06 PM
Reviewer
KWin
Differential Revision
D17283: [effects] Clean up effect_order in unloadAllEffects
Parents
R108:3ad9ac7229ff: Introduce the concept of an internal window system independent id
Branches
Unknown
Tags
Unknown