From daecb8f0fa636bf7d95cf109a7e68e2541d2da4f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Borgese?= Date: Tue, 20 May 2008 22:01:49 +0000 Subject: [PATCH] Valgrind reported effect_window is accessed through Toplevel::discardWindowPixmap() after it has been deleted in Deleted destructor. Set it to NULL to avoid illegal access. CCMAIL l.lunak@kde.org svn path=/trunk/KDE/kdebase/workspace/; revision=810520 --- deleted.cpp | 2 +- toplevel.h | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/deleted.cpp b/deleted.cpp index d92917b05d..2683e1e900 100644 --- a/deleted.cpp +++ b/deleted.cpp @@ -37,7 +37,7 @@ Deleted::~Deleted() { assert( delete_refcount == 0 ); workspace()->removeDeleted( this, Allowed ); - delete effectWindow(); + deleteEffectWindow(); } Deleted* Deleted::create( Toplevel* c ) diff --git a/toplevel.h b/toplevel.h index 9091b6a8e1..3675e82a66 100644 --- a/toplevel.h +++ b/toplevel.h @@ -141,6 +141,7 @@ class Toplevel void copyToDeleted( Toplevel* c ); void disownDataPassedToDeleted(); friend kdbgstream& operator<<( kdbgstream& stream, const Toplevel* ); + void deleteEffectWindow(); QRect geom; Visual* vis; int bit_depth; @@ -393,6 +394,12 @@ inline pid_t Toplevel::pid() const return info->pid(); } +inline void Toplevel::deleteEffectWindow() + { + delete effect_window; + effect_window = NULL; + } + kdbgstream& operator<<( kdbgstream& stream, const Toplevel* ); kdbgstream& operator<<( kdbgstream& stream, const ToplevelList& ); kdbgstream& operator<<( kdbgstream& stream, const ConstToplevelList& );