Thread overview
wx 2.4.2 - which version to get
Feb 17, 2004
eliot
Feb 18, 2004
Arjan Knepper
Feb 18, 2004
Eliot
Feb 19, 2004
Arjan Knepper
Feb 19, 2004
julian
Feb 19, 2004
Eliot
February 17, 2004
I see from this list (and have experienced) some problems with 2.4.2 downloaded
as installer.

Would you recommend that I use CVS instead? - I don't really want to be at the
bleeding edge of wxWin development though.
I.e. should I go for a particulary CVS branch?

OR would you recommend that I patch the standard 2.4.2 according to bugfixes posted on this list?

thanks

Eliot


February 18, 2004
You are also able to retrieve the 2.4.2 from the CVS. (Called a 'branch' named WX_2_4_BRANCH)

I would suggest you try this first.

Arjan

eliot@blennerhassett.gen.nz wrote:
> I see from this list (and have experienced) some problems with 2.4.2 downloaded
> as installer.   
> 
> Would you recommend that I use CVS instead? - I don't really want to be at the
> bleeding edge of wxWin development though.
> I.e. should I go for a particulary CVS branch?
> 
> OR would you recommend that I patch the standard 2.4.2 according to bugfixes
> posted on this list?
> 
> thanks
> 
> Eliot
> 
> 
February 18, 2004
Arjan Knepper wrote:

> You are also able to retrieve the 2.4.2 from the CVS. (Called a 'branch' named WX_2_4_BRANCH)
> 
> I would suggest you try this first.
> 

OK, I have done that and the libraries compile OK.
The minimal sample compiles OK, but the controls sample crashes (access violation I think).

(Compiler version 8.38n, Windows XP)

I guess I'd better figure out how to run the debugger on an application built using a makefile...
My CD arrived in the mail a couple of days ago - do I need to upgrade the compiler as well?

- Eliot

February 19, 2004
Eliot wrote:

> Arjan Knepper wrote:
> 
>> You are also able to retrieve the 2.4.2 from the CVS. (Called a 'branch' named WX_2_4_BRANCH)
>>
>> I would suggest you try this first.
>>
> 
> OK, I have done that and the libraries compile OK.
> The minimal sample compiles OK, but the controls sample crashes (access violation I think).

Yes a access violation because the wxWindows holds a const reference to a temporary object and uses the reference after the object gets destroyed.

Change line 360 in src/msw/tooltip.cpp like below:
----------------------------<snip>-----------------------------------------
#if !defined(__WXUNIVERSAL__)
    // and all of its subcontrols (e.g. radiobuttons in a radiobox) as well
    wxControl *control = wxDynamicCast(m_window, wxControl);
    if ( control )
    {
//      const wxArrayLong& subcontrols = control->GetSubcontrols();
        const wxArrayLong  subcontrols = control->GetSubcontrols();
        size_t count = subcontrols.GetCount();
        for ( size_t n = 0; n < count; n++ )
        {
            int id = subcontrols[n];
----------------------------<snip>-----------------------------------------

A few days ago Matthew Wilson reported the same kind of problem which seems to be supposed to work this way.

Arjan.
February 19, 2004
I've just been alerted to this on wx-dev and have made this change in wxWindows 2.4 and 2.5 CVS. Thanks!

Julian Smart

In article <c12g6c$9vf$1@digitaldaemon.com>, Arjan Knepper says...
>Yes a access violation because the wxWindows holds a const reference to a temporary object and uses the reference after the object gets destroyed.
>
>Change line 360 in src/msw/tooltip.cpp like below:
>----------------------------<snip>-----------------------------------------
>#if !defined(__WXUNIVERSAL__)
>     // and all of its subcontrols (e.g. radiobuttons in a radiobox) as well
>     wxControl *control = wxDynamicCast(m_window, wxControl);
>     if ( control )
>     {
>//      const wxArrayLong& subcontrols = control->GetSubcontrols();
>         const wxArrayLong  subcontrols = control->GetSubcontrols();
>         size_t count = subcontrols.GetCount();
>         for ( size_t n = 0; n < count; n++ )
>         {
>             int id = subcontrols[n];



February 19, 2004
Arjan Knepper wrote:

> Change line 360 in src/msw/tooltip.cpp like below:
> //      const wxArrayLong& subcontrols = control->GetSubcontrols();
>         const wxArrayLong  subcontrols = control->GetSubcontrols();

Thanks!  That solved it.

Now I'm going to start a new thread with my question about debugging..

regards

Eliot