Developer forums (C::B DEVELOPMENT STRICTLY!) > Plugins development

wxFlatNotebook 2.2

<< < (3/8) > >>

killerbot:
some more callstack info : (seems crash is at shutdown of cb) :

#0 6CE7A909   wxmsw28u_gcc_cb!_ZNK11wxSizerItem7IsShownEv() (C:\Projects\CodeBlocks\src\devel\wxmsw28u_gcc_cb.dll:??)

#1 6CE7E7A8   wxmsw28u_gcc_cb!_ZN10wxBoxSizer7CalcMinEv() (C:\Projects\CodeBlocks\src\devel\wxmsw28u_gcc_cb.dll:??)

#2 6CE7B802   wxmsw28u_gcc_cb!_ZN7wxSizer6LayoutEv() (C:\Projects\CodeBlocks\src\devel\wxmsw28u_gcc_cb.dll:??)

#3 6193836B   wxFlatNotebook::SetSelection(this=0x16cf0a0, page=2) (C:/Projects/CodeBlocks/src/sdk/wxFlatNotebook/src/wxFlatNotebook/wxFlatNotebook.cpp:293)

#4 6193E1DF   wxPageContainer::DoDeletePage(this=0x16a8d80, page=3) (C:/Projects/CodeBlocks/src/sdk/wxFlatNotebook/src/wxFlatNotebook/wxFlatNotebook.cpp:1274)

#5 61939232   wxFlatNotebook::RemovePage(this=0x16cf0a0, page=3, notify=true) (C:/Projects/CodeBlocks/src/sdk/wxFlatNotebook/src/wxFlatNotebook/wxFlatNotebook.cpp:554)

#6 6188ABE7   MessageManager::RemoveLog(this=0x16a3be8, log=0x3e31f90) (C:/Projects/CodeBlocks/src/sdk/messagemanager.cpp:354)

#7 64B9EF33   CompilerGCC::OnRelease(this=0x21b0ca0, appShutDown=true) (C:/Projects/CodeBlocks/src/plugins/compilergcc/compilergcc.cpp:413)

#8 617DED50   cbPlugin::Release(this=0x21b0ca0, appShutDown=true) (C:/Projects/CodeBlocks/src/sdk/cbplugin.cpp:81)

#9 61898124   PluginManager::DetachPlugin(this=0x2024af0, plugin=0x21b0ca0) (C:/Projects/CodeBlocks/src/sdk/pluginmanager.cpp:216)

#10 618A11AB   PluginManager::UnloadPlugin(this=0x2024af0, plugin=0x21b0ca0) (C:/Projects/CodeBlocks/src/sdk/pluginmanager.cpp:1154)

#11 618A116E   PluginManager::UnloadAllPlugins(this=0x2024af0) (C:/Projects/CodeBlocks/src/sdk/pluginmanager.cpp:1142)

#12 61897F1A   PluginManager::~PluginManager(this=0x2024af0) (C:/Projects/CodeBlocks/src/sdk/pluginmanager.cpp:187)

#13 619C25EC   Mgr<PluginManager>::Free() (C:/Projects/CodeBlocks/src/include/manager.h:187)

#14 61883B8E   Manager::Shutdown() (C:/Projects/CodeBlocks/src/sdk/manager.cpp:166)

#15 00439E0C   MainFrame::OnApplicationClose(this=0x16539c0, event=@0x22ed94) (C:/Projects/CodeBlocks/src/src/main.cpp:2553)

#16 6CD07305   wxmsw28u_gcc_cb!_ZN12wxEvtHandler21ProcessEventIfMatchesERK21wxEventTableEntryBasePS_R7wxEvent() (C:\Projects\CodeBlocks\src\devel\wxmsw28u_gcc_cb.dll:??)

#17 6CD0765C   wxmsw28u_gcc_cb!_ZN16wxEventHashTable11HandleEventER7wxEventP12wxEvtHandler() (C:\Projects\CodeBlocks\src\devel\wxmsw28u_gcc_cb.dll:??)

#18 6CD08629   wxmsw28u_gcc_cb!_ZN12wxEvtHandler12ProcessEventER7wxEvent() (C:\Projects\CodeBlocks\src\devel\wxmsw28u_gcc_cb.dll:??)

#19 6CD085C9   wxmsw28u_gcc_cb!_ZN12wxEvtHandler12ProcessEventER7wxEvent() (C:\Projects\CodeBlocks\src\devel\wxmsw28u_gcc_cb.dll:??)

#20 6CD085C9   wxmsw28u_gcc_cb!_ZN12wxEvtHandler12ProcessEventER7wxEvent() (C:\Projects\CodeBlocks\src\devel\wxmsw28u_gcc_cb.dll:??)

#21 6CD085C9   wxmsw28u_gcc_cb!_ZN12wxEvtHandler12ProcessEventER7wxEvent() (C:\Projects\CodeBlocks\src\devel\wxmsw28u_gcc_cb.dll:??)

#22 6CD085C9   wxmsw28u_gcc_cb!_ZN12wxEvtHandler12ProcessEventER7wxEvent() (C:\Projects\CodeBlocks\src\devel\wxmsw28u_gcc_cb.dll:??)

#23 6CD085C9   wxmsw28u_gcc_cb!_ZN12wxEvtHandler12ProcessEventER7wxEvent() (C:\Projects\CodeBlocks\src\devel\wxmsw28u_gcc_cb.dll:??)

#24 6CD085C9   wxmsw28u_gcc_cb!_ZN12wxEvtHandler12ProcessEventER7wxEvent() (C:\Projects\CodeBlocks\src\devel\wxmsw28u_gcc_cb.dll:??)

#25 6CD085C9   wxmsw28u_gcc_cb!_ZN12wxEvtHandler12ProcessEventER7wxEvent() (C:\Projects\CodeBlocks\src\devel\wxmsw28u_gcc_cb.dll:??)

#26 6CD085C9   wxmsw28u_gcc_cb!_ZN12wxEvtHandler12ProcessEventER7wxEvent() (C:\Projects\CodeBlocks\src\devel\wxmsw28u_gcc_cb.dll:??)

#27 6CD085C9   wxmsw28u_gcc_cb!_ZN12wxEvtHandler12ProcessEventER7wxEvent() (C:\Projects\CodeBlocks\src\devel\wxmsw28u_gcc_cb.dll:??)

#28 6CD085C9   wxmsw28u_gcc_cb!_ZN12wxEvtHandler12ProcessEventER7wxEvent() (C:\Projects\CodeBlocks\src\devel\wxmsw28u_gcc_cb.dll:??)

#29 6CD085C9   wxmsw28u_gcc_cb!_ZN12wxEvtHandler12ProcessEventER7wxEvent() (C:\Projects\CodeBlocks\src\devel\wxmsw28u_gcc_cb.dll:??)


EDIT : and thje crash is in the message panes, which look weird, line seems doubled, just like you would split screen an  editor

killerbot:
as what our differences to official wxFNB 2.1 :
 - 98% due to upgrades of your cvs/svn repos (months ago)
 - 2 changes for wx2.8 and something for event (see overview here : http://svn.berlios.de/wsvn/codeblocks/trunk/src/sdk/wxFlatNotebook/src/wxFlatNotebook/wxFlatNotebook.cpp?op=log&rev=0&sc=0&isdir=0)
 - maybe this ? http://svn.berlios.de/wsvn/codeblocks/trunk/src/sdk/wxFlatNotebook/src/wxFlatNotebook/renderer.cpp?op=diff&rev=3314&sc=0

so it seems that wrt wxFNB and first svn revision after that we hardly changed anything, so no special tricks from our side [in case the 2 changes mentioned above could be the culprit when they are lacking ?]

In case the changes are harmless, either CB is doing something wrong which bcomes an issue now, or we are on the verge of discovering wxFNB bug ?

eranif:
I have a wild guess (without testing the code):
I discovered a bug that could happen in the following sequence:

- Open 4 tabs [A B C D] A-D means the order they were created
- At this point the active tab is D, now select B
- Now close D using middle mouse click - I choose the middle mouse click, since this is the only option (beside doing it programtically) that allows user to close a tab without making it active.

now the editor is splitted as you described. (btw, this bug was fixed in SVN).

To fix it locally without chaging to SVN version, apply the following fix to wxFlatNotebook.cpp:

--- Code: ---Index: ../../src/wxFlatNotebook/wxFlatNotebook.cpp
===================================================================
--- ../../src/wxFlatNotebook/wxFlatNotebook.cpp (revision 17)
+++ ../../src/wxFlatNotebook/wxFlatNotebook.cpp (working copy)
@@ -1235,7 +1235,7 @@
 {
  // Remove the page from the vector
  wxFlatNotebook* book = (wxFlatNotebook*)GetParent();
- m_pagesInfoVec.RemoveAt(page);
+
 
  // Armel Asselin's patch
  int newActivePageIndex = m_iActivePage, newPreviousPageIndex = m_iPreviousActivePage;
@@ -1259,6 +1259,7 @@
  newActivePageIndex = newPreviousPageIndex;
  }
 
+ m_pagesInfoVec.RemoveAt(page);
  m_iActivePage = newActivePageIndex;
  m_iPreviousActivePage = newPreviousPageIndex;
  if (m_iActivePage == m_iPreviousActivePage)
--- End code ---
note that this patch only moves m_pagesInfoVec.RemoveAt(page); few lines later.

try it
Eran

killerbot:
I haven't been able to reproduce the crash with this :-)

will test a few times more

killerbot:
seems ok : I will commit this evening.
@ everybody : keep your eyes open on issues please

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version