Hi Abdel, The svn log on Cursor.cpp shows that you'd transferred some code into Cursor::getStatus(). In my latest comments on this bug (#6564), I explain what I believe to be the source of heavy crashes with formulas inside tables inside this function during the GUI-update finalization.
The command executes successfully but the GUI update calls the same code-path and Cursor::getStatus() thinks it is about to execute a command. Therefore, it calls Inset::getStatus()=0 on the *next* inset whereas during GUI-update needs to call getStatus on the *current* inset. Is this correct? I hope I have been helpful. My work is getting interrupted every keystroke! :-) -- Manoj On Tuesday 02 March 2010 11:05:43 pm Manoj Rajagopalan wrote: > Trac comments don't seem to go out to the lyx-devel list so I'm forwarding > this. > > -- Manoj > > ---------- Forwarded Message ---------- > > Subject: Re: #6564: Crash on moving out of math-cases placed in table cell > Date: Tuesday 02 March 2010 > From: "LyX Ticket Tracker" <t...@lyx.org> > To: rma...@umich.edu, lasgout...@lyx.org > > #6564: Crash on moving out of math-cases placed in table cell > ---------------------+----------------------------------------------------- >- Reporter: rmanoj | Owner: lasgouttes > Type: defect | Status: new > Priority: normal | Milestone: 2.0.0 > Component: general | Version: 2.0.0svn > Severity: normal | Keywords: > ---------------------+----------------------------------------------------- >- > > Comment(by rmanoj): > > The offending line seems to be the LASSERT(asInsetMath()) in > CursorSlice::row() at level #6 in the above backtrace. In GDB, at level #6 > (i.e. within CursorSlice), inset_->asInsetMath() returns 0x0 whereas > inset_->asInsetTabular() returns non-zero. Also, inset_->as<other > insets>() returns 0x0. This means that the current inset is the text-mode > table (InsetTabular). > > My guess is that as we move between the InsetTabular and the enclosed > InsetMath derivative, the CursorSlice stack (vector<CursorSlices> > Cursor::slices_) is not being adjusted properly.