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

Reply via email to