Re: phase 2 of wxWidgets 2.9 build

From: Dave Page <dpage(at)pgadmin(dot)org>
To: Peter Geoghegan <peter(dot)geoghegan86(at)gmail(dot)com>
Cc: pgadmin-hackers(at)postgresql(dot)org
Subject: Re: phase 2 of wxWidgets 2.9 build
Date: 2011-02-02 18:51:23
Message-ID: AANLkTi=cN1Pw0kLGwFicr_8Aoyws-mBJsPFAHmcxGsj=@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgadmin-hackers

On Wed, Feb 2, 2011 at 6:23 PM, Peter Geoghegan
<peter(dot)geoghegan86(at)gmail(dot)com> wrote:
> Well, none of that has worked. However, considering this:
>
> [peter(at)localhost local]$ nm -D
> /usr/local/lib/libwx_gtk2u_adv-2.9.so.1.0.0 | grep wxBitmapComboBox |
> grep Insert | c++filt
> 000000000016b8b0 T wxBitmapComboBox::SetInsertionPoint(long)
> 000000000016ce10 T
> wxBitmapComboBox::GTKInsertComboBoxTextItem(unsigned int, wxString
> const&)
> 000000000016ca70 T wxBitmapComboBox::Insert(wxString const&, wxBitmap
> const&, unsigned int)
> 000000000016cc10 T wxBitmapComboBox::Insert(wxString const&, wxBitmap
> const&, unsigned int, wxClientData*)
> *snip*
>
> I find it hard to argue with my linker on this one - the last function
> should have a void* as its last parameter. I suspect a bug in 2.9.1 .

Hmm, the docs for both 2.8 and 2.9 show 3 Insert members - one with
three parameters and 2 with 4, one with wxClientData* and one with
void*. Certainly looks like an issue.

> Changing this:
> cbConnection->Insert(newconn->GetName(),
> CreateBitmap(GetServerColour(newconn)), sel, newconn);
> to this:
> cbConnection->Insert(newconn->GetName(),
> CreateBitmap(GetServerColour(newconn)), sel, (wxClientData*)newconn);
>
> so that the wxClientData* overload rather than the void* overload is
> called seems to have fixed the problem.

Yup.

> We have a complete 2.9 build!

Wahoo! Nice work Sir!

> Now to investigate this assertion failure, that I see plenty of:
>
> /usr/local/include/wx-2.9/wx/strvararg.h(449): assert "(argtype &
> (wxFormatStringSpecifier<T>::value)) == argtype" failed in
> wxArgNormalizer(): format specifier doesn't match argument type
>
> ASSERT INFO:
> /usr/local/include/wx-2.9/wx/strvararg.h(449): assert "(argtype &
> (wxFormatStringSpecifier<T>::value)) == argtype" failed in
> wxArgNormalizer(): format specifier doesn't match argument type
>
> BACKTRACE:
> [1] wxOnAssert(char const*, int, char const*, char const*, char const*)
> [2] wxArgNormalizer() /usr/local/include/wx-2.9/wx/strvararg.h:449
> [3] wxArgNormalizerUtf8() /usr/local/include/wx-2.9/wx/strvararg.h:481
> [4] int wxString::Printf<unsigned long>(wxFormatString const&,
> unsigned long) /usr/local/include/wx-2.9/wx/string.h:2305
> [5] pgCollection::UpdateChildCount(ctlTree*, int)
> /home/peter/pgadmin3/pgadmin/./schema/pgCollection.cpp:93
> *SNIP*
>
> We seem to just get an assertion failure when refreshing an expanded
> node where we would have crashed before. Progress.

:-)

> I've attached:
>
> A patch for anyone that wants to reproduce this. It doesn't break the 2.8 build.
>
> A screenshot, which seems to show some minor problems with this build
> of pgAdmin, that are probably related to AUI in some way.

Thanks Peter, great work.

--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

In response to

Responses

Browse pgadmin-hackers by date

  From Date Subject
Next Message Dave Page 2011-02-02 20:16:33 pgAdmin III commit: Fix a couple of warnings on VC++
Previous Message Peter Geoghegan 2011-02-02 18:23:06 Re: phase 2 of wxWidgets 2.9 build