Package: libguichan0
Version: 0.6.1-2
Severity: important
Tags: patch
In DropDown::~DropDown, listener are removed from objets, after these
objects have already been destroyed. It induces a segfault at the
startup of The Mana World when it tries to delete the server selection
dropbox. The attached patch fixes it by removing the listeners before
deleting the objects.
-- System Information:
Debian Release: lenny/sid
APT prefers testing
APT policy: (990, 'testing'), (500, 'unstable')
Architecture: amd64 (x86_64)
Kernel: Linux 2.6.18-4-amd64 (SMP w/2 CPU cores)
Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash
Versions of packages libguichan0 depends on:
ii libc6 2.5-11 GNU C Library: Shared
libraries
ii libgcc1 1:4.2-20070528-1 GCC support library
ii libstdc++6 4.2-20070528-1 The GNU Standard C++
Library v3
libguichan0 recommends no packages.
-- no debconf information
--- src/widgets/dropdown.cpp.old 2007-06-16 15:36:56.000000000 +0200
+++ src/widgets/dropdown.cpp 2007-06-16 15:37:23.000000000 +0200
@@ -123,24 +123,24 @@
DropDown::~DropDown()
{
- if (mInternalScrollArea)
+ if (widgetExists(mListBox))
{
- delete mScrollArea;
+ mListBox->removeActionListener(this);
}
- if (mInternalListBox)
+ if (mScrollArea != NULL)
{
- delete mListBox;
+ mScrollArea->removeDeathListener(this);
}
- if (widgetExists(mListBox))
+ if (mInternalScrollArea)
{
- mListBox->removeActionListener(this);
+ delete mScrollArea;
}
- if (mScrollArea != NULL)
+ if (mInternalListBox)
{
- mScrollArea->removeDeathListener(this);
+ delete mListBox;
}
}