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; } }