On 20 Sep 2001, Jean-Marc Lasgouttes wrote:
> >> >> Also, I'd be interested to see the purify report generated when
> >> the >> cursor is between two spaces and you do S-Right.
> >>
> >> OK, could you try with S-Down? I see a bad selection on screen, so
> >> I would be very surprised if purify did not object.
>
> Michael> You are right. See report below.
>
> Hmm, and if you do the selection with the mouse, do you get a report
> too (maybe move the mouse south).
Yes, yet another report. (BTW: Isn't it astonishing that there are 173
frees between freeing the memory and the free memory read? Object
orientation at its best!)
I don't want you to draw your attention into the wrong direction but... If
I understand the problem correctly, some cursor becomes invalid because
the corresponding text is deleted. Now, when we look at the purify
report, we can see quite exactly where this text is deleted
(deleteEmptyPar... and related methods). Thus, I think this is also the
place where the cursor must be "corrected". Does that make sense?
(I intend to leave my office in half an hour. If you need my help, please
contact me in time)
Michael
****************************************************************************
FMR: Free memory read
This is occurring while in:
Row::baseline()const [lyxrow.C:95]
BufferView::Pimpl::workAreaMotionNotify(int,int,unsigned int)
[BufferView_pimpl.C:558]
SigC::ObjectSlot3_<void,int,int,unsigned
int,BufferView::Pimpl>::callback(void*,int,int,unsigned int)
[object_slot.h:347]
SigC::Signal3<void,int,int,unsigned
int,SigC::Marshal<void>>::emit(const int&,const int&,const unsigned int&)
[slot.h:554]
WorkArea::work_area_handler(flobjs_*,int,int,int,int,void*)
[basic_signal.h:589]
C_WorkArea_work_area_handler [WorkArea.C:61]
fl_handle_it [objects.c]
fl_handle_object [libforms.a]
fl_handle_form [forms.c]
do_interaction_step [forms.c]
fl_treat_interaction_events [libforms.a]
fl_check_forms [libforms.a]
GUIRunTime::runTime() [GUIRunTime.C:86]
LyXGUI::runTime() [lyx_gui.C:320]
LyX::LyX(int*,char**) [lyx_main.C:176]
main [main.C:38]
_start [crt1.o]
Reading 4 bytes from 0x17cdde8 in the heap.
Address 0x17cdde8 is 24 bytes into a freed block at 0x17cddd0 of 36
bytes.
This block was allocated from:
malloc [rtlib.o]
__bUiLtIn_nEw [new1.cc:84]
__builtin_new [rtlib.o]
LyXText::insertRow(Row*,Paragraph*,int)const [text2.C:360]
LyXText::insertParagraph(BufferView*,Paragraph*,Row*)const
[text2.C:432]
LyXText::init(BufferView*,bool) [text2.C:90]
BufferView::Pimpl::resizeCurrentBuffer()
[BufferView_pimpl.C:334]
BufferView::Pimpl::buffer(Buffer*) [BufferView_pimpl.C:199]
BufferView::buffer(Buffer*) [BufferView.C:70]
LyXFunc::menuNew(bool) [lyxfunc.C:1819]
LyXFunc::dispatch(int,const lyxstring&) [lyxfunc.C:1044]
Menubar::Pimpl::MenuCallback(flobjs_*,long)
[Menubar_pimpl.C:581]
C_Menubar_Pimpl_MenuCallback [Menubar_pimpl.C:79]
fl_object_qread [libforms.a]
fl_check_forms [libforms.a]
GUIRunTime::runTime() [GUIRunTime.C:86]
LyXGUI::runTime() [lyx_gui.C:320]
LyX::LyX(int*,char**) [lyx_main.C:176]
main [main.C:38]
_start [crt1.o]
There have been 173 frees since this block was freed from:
free [rtlib.o]
__bUiLtIn_dElEtE [new2.cc:54]
__builtin_delete [rtlib.o]
LyXText::removeRow(Row*)const [text2.C:408]
LyXText::redoParagraphs(BufferView*,const LyXCursor&,const
Paragraph*)const [text2.C:904]
LyXText::deleteEmptyParagraphMechanism(BufferView*,const
LyXCursor&)const [text2.C:2398]
LyXText::setCursorFromCoordinates(BufferView*,int,int)const
[text2.C:2265]
BufferView::Pimpl::workAreaMotionNotify(int,int,unsigned int)
[BufferView_pimpl.C:552]
SigC::ObjectSlot3_<void,int,int,unsigned
int,BufferView::Pimpl>::callback(void*,int,int,unsigned int)
[object_slot.h:347]
SigC::Signal3<void,int,int,unsigned
int,SigC::Marshal<void>>::emit(const int&,const int&,const unsigned int&)
[slot.h:554]
WorkArea::work_area_handler(flobjs_*,int,int,int,int,void*)
[basic_signal.h:589]
C_WorkArea_work_area_handler [WorkArea.C:61]
fl_handle_it [objects.c]
fl_handle_object [libforms.a]
fl_handle_form [forms.c]
do_interaction_step [forms.c]
fl_treat_interaction_events [libforms.a]
fl_check_forms [libforms.a]
GUIRunTime::runTime() [GUIRunTime.C:86]
LyXGUI::runTime() [lyx_gui.C:320]
LyX::LyX(int*,char**) [lyx_main.C:176]
main [main.C:38]
_start [crt1.o]
--
======================================================================
Michael Schmitt phone: +49 451 500 3725
Institute for Telematics secretary: +49 451 500 3721
Medical University of Luebeck fax: +49 451 500 3722
Ratzeburger Allee 160 eMail: [EMAIL PROTECTED]
D-23538 Luebeck, Germany WWW: http://www.itm.mu-luebeck.de
======================================================================