kicad-developers team mailing list archive
Mailing list archive
Re: Fix in LIB_LOGGER to avoid Kicad crash on exit. Need review.
On OSX (at least), when the LIB_LOGGER goes out of scope its super-class’s destructor is called, which calls Flush(). So the bug is just that the SetActiveTarget( m_previousLogger) is inside the if( m_bHasMessages ) block when it shouldn’t be.
That being said, your code is less dependent on the specifics of how wxWidgets currently works, so it's more robust. I’m good with it.
> On 14 Jul 2019, at 18:06, jp charras <jp.charras@xxxxxxxxxx> wrote:
> Hi Jeff,
> Could you have a look into my commit 9259f3a7.
> It fixes a crash on Windows on Kicad exit, if libedit was opened during
> a session.
> I am thinking it was due to the fact wxLog::SetActiveTarget( this ) was
> called, but after deleting libedit (and therefore the created LIB_LOGGER
> ) wxLog was pointing a deleted LIB_LOGGER
> (wxLog::SetActiveTarget( m_previousLogger ) is never called if no error
> I am thinking my code works, but I need your opinion, because this is
> your code and I am not specialist of wxLog.
> Jean-Pierre CHARRAS
> Mailing list: https://launchpad.net/~kicad-developers
> Post to : kicad-developers@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~kicad-developers
> More help : https://help.launchpad.net/ListHelp