From 290b5a8cc97507878b4b1bb9620e1a97c36ccea1 Mon Sep 17 00:00:00 2001 From: Hugo Pereira Da Costa Date: Thu, 3 Sep 2009 03:32:12 +0000 Subject: [PATCH] added tileset initialization in constructor (to NULL), tileset destruction in destructor; and tileset destruction when replaced in ::shadowTiles method. (this was leaking, or did I miss something ?) svn path=/trunk/KDE/kdebase/workspace/; revision=1019165 --- clients/nitrogen/nitrogenclient.cpp | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/clients/nitrogen/nitrogenclient.cpp b/clients/nitrogen/nitrogenclient.cpp index 4781072127..5489914a77 100644 --- a/clients/nitrogen/nitrogenclient.cpp +++ b/clients/nitrogen/nitrogenclient.cpp @@ -72,6 +72,8 @@ namespace Nitrogen KCommonDecorationUnstable(b, f), colorCacheInvalid_(true), size_grip_( 0 ), + shadowTiles_( 0 ), + glowTiles_( 0 ), helper_(*globalHelper), initialized_( false ) { qAddPostRoutine(oxkwincleanupBefore); } @@ -83,6 +85,10 @@ namespace Nitrogen // delete sizegrip if any if( hasSizeGrip() ) deleteSizeGrip(); + // delete tilesets + if( shadowTiles_ ) delete shadowTiles_; + if( glowTiles_ ) delete glowTiles_; + } //___________________________________________ @@ -741,10 +747,18 @@ namespace Nitrogen && opt.glowColor == opt.glowColor) optionChanged = false; - if (active && glowTiles_ && !optionChanged) - return glowTiles_; - else if (!active && shadowTiles_ && !optionChanged) - return shadowTiles_; + if (active && glowTiles_ ) + { + + if( optionChanged) delete glowTiles_; + else return glowTiles_; + + } else if (!active && shadowTiles_ ) { + + if( optionChanged ) delete shadowTiles_; + else return shadowTiles_; + + } TileSet *tileSet = 0;