Re: Crash during displaying drop-down menu for server - Mailing list pgadmin-hackers

From Dave Page
Subject Re: Crash during displaying drop-down menu for server
Date
Msg-id E7F85A1B5FF8D44C8A1AF6885BC9A0E4CC3263@ratbert.vale-housing.co.uk
Whole thread Raw
In response to Crash during displaying drop-down menu for server  (Tomasz Rybak <bogomips@post.pl>)
Responses Re: Crash during displaying drop-down menu for  (Tomasz Rybak <bogomips@post.pl>)
List pgadmin-hackers

> -----Original Message-----
> From: pgadmin-hackers-owner@postgresql.org
> [mailto:pgadmin-hackers-owner@postgresql.org] On Behalf Of
> Tomasz Rybak
> Sent: 06 October 2005 19:18
> To: pgAdmin Hackers
> Subject: [pgadmin-hackers] Crash during displaying drop-down
> menu for server
>
> I updated my sources to 4512, compiled and installed.
> When I run pgAdmin, and try to right-click on server
> in databases tree, pgAdmin crashes.
>
> After little debugging I discovered, that problem is in
> src/main/events.cpp, frmMain::doPopup.
>
> pgAdmin crashes in line 466:
> if (mil.Item(newItemPos)->GetData()->GetId() == newItem->GetId())
>
> It's caused because newItem is NULL, and it isn't received in line 458
> wxMenuItem
> *newItem=treeContextMenu->FindItem(newMenuFactory->GetId());
> What's strange, wxASSERT from next line isn't even called (at
> least not
> under GDB). I compiled using standard Debian setting, only added -ggdb
> for compiler and removed dh_strip from pkg/debian/rules.
>
> Message from GDB:
> #0  0x0807a083 in frmMain::doPopup (this=0x87680f0, win=0x8d0c640,
> point=
>       {x = 145, y = 43}, object=0x8699340) at ./main/events.cpp:466
> 466             if (mil.Item(newItemPos)->GetData()->GetId() ==
> newItem->GetId())
>
> When I double-click on database in tree view (so pgAdmin is connected
> to it) and after that I right-click on it's entry, pgAdmin doesn't
> crash.

Yes, I can confirm this on Windows. I think the problem actually comes
from line 458:

    wxMenuItem
*newItem=treeContextMenu->FindItem(newMenuFactory->GetId());
    wxASSERT(newItem);

Where newItem is null if not connected to the server. I'm not sure how
to fix this - Andreas, can you look at it please?

Thanks, Dave.

pgadmin-hackers by date:

Previous
From: svn@pgadmin.org
Date:
Subject: SVN Commit by dpage: r4518 - in trunk/pgadmin3: pkg/win32/src src
Next
From: svn@pgadmin.org
Date:
Subject: SVN Commit by dpage: r4519 - trunk/pgadmin3/src/ui