Hi everybody,

I found a new memory access problem. Obviously the problem is not totally
unknown because it is related to some conversation between Lars and
Juergen:

  #warning I belive this code is wrong. (Lgb)
  #warning Jrgen, have a look at this. (Lgb)
  #warning Hmmm, I guess you are right but we
  #warning should verify when this is needed

It is needed when you...

   ...open a new document; insert a note inset with two pars (e.g.,
   letters "a" and "b"); cut the pars and place them in front of the note
   (separate paragraph!); cut the note; move the cursor upwards

Below please find the corresponding Purify report. If anybody is willing
to have a look at it, I may provide more information (i.e. values of
variables when the error occurs and things like that).

Michael

PS: I have already applied Jean Marc's patch for another memory problem. I
hope both are not related to each other...

*************************************************************************

      FMR: Free memory read
      This is occurring while in:

LyXText::setCursorIntern(BufferView*,Paragraph*,int,bool,bool)const
[text2.C:2211]
            LyXText::deleteEmptyParagraphMechanism(BufferView*,const
LyXCursor&)const [text2.C:2502]
            LyXText::setCursorFromCoordinates(BufferView*,int,int)const
[text2.C:2265]
            LyXText::cursorUp(BufferView*)const [text2.C:2320]
            BufferView::Pimpl::Dispatch(kb_action,const lyxstring&)
[BufferView_pimpl.C:1905]
            BufferView::Dispatch(kb_action,const lyxstring&)
[BufferView.C:294]
            LyXFunc::dispatch(int,const lyxstring&) [lyxfunc.C:1617]
            LyXFunc::processKeySym(unsigned long,unsigned int)
[lyxfunc.C:353]
            BufferView::Pimpl::workAreaKeyPress(unsigned long,unsigned
int) [BufferView_pimpl.C:515]
            SigC::ObjectSlot2_<void,unsigned long,unsigned
int,BufferView::Pimpl>::callback(void*,unsigned long,unsigned int)
[object_slot.h:250]
            SigC::Signal2<void,unsigned long,unsigned
int,SigC::Marshal<void>>::emit(const unsigned long&,const unsigned int&)
[slot.h:456]
            WorkArea::work_area_handler(flobjs_*,int,int,int,int,void*)
[basic_signal.h:450]
            C_WorkArea_work_area_handler [WorkArea.C:61]
            fl_handle_it   [objects.c]
            fl_handle_object [libforms.a]
            fl_handle_form [forms.c]
            do_keyboard    [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 0xb5455c in the heap.
      Address 0xb5455c is 124 bytes into a freed  block at 0xb544e0 of 384
bytes.
      This block was allocated from:
            malloc         [rtlib.o]
            __bUiLtIn_nEw  [new1.cc:84]
            __builtin_new  [rtlib.o]
            BufferView::Pimpl::Dispatch(kb_action,const lyxstring&)
[BufferView_pimpl.C:2733]
            BufferView::Dispatch(kb_action,const lyxstring&)
[BufferView.C:294]
            LyXFunc::dispatch(int,const lyxstring&) [lyxfunc.C:1617]
            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 66 frees since this block was freed from:
            free           [rtlib.o]
            __bUiLtIn_dElEtE [new2.cc:54]
            __builtin_delete [rtlib.o]
            InsetNote::~InsetNote() [inset.h:138]
            Paragraph::Pimpl::erase(int) [paragraph_pimpl.C:158]
            Paragraph::erase(int) [paragraph.C:475]

CutAndPaste::cutSelection(Paragraph*,Paragraph**,int,int&,char,bool,bool)
[CutAndPaste.C:98]
            LyXText::cutSelection(BufferView*,bool,bool) [text2.C:1764]
            BufferView::cut(bool) [BufferView2.C:304]
            BufferView::Pimpl::Dispatch(kb_action,const lyxstring&)
[BufferView_pimpl.C:1527]
            BufferView::Dispatch(kb_action,const lyxstring&)
[BufferView.C:294]
            LyXFunc::dispatch(int,const lyxstring&) [lyxfunc.C:1617]
            LyXFunc::processKeySym(unsigned long,unsigned int)
[lyxfunc.C:353]
            BufferView::Pimpl::workAreaKeyPress(unsigned long,unsigned
int) [BufferView_pimpl.C:515]
            SigC::ObjectSlot2_<void,unsigned long,unsigned
int,BufferView::Pimpl>::callback(void*,unsigned long,unsigned int)
[object_slot.h:250]
            SigC::Signal2<void,unsigned long,unsigned
int,SigC::Marshal<void>>::emit(const unsigned long&,const unsigned int&)
[slot.h:456]
            WorkArea::work_area_handler(flobjs_*,int,int,int,int,void*)
[basic_signal.h:450]
            C_WorkArea_work_area_handler [WorkArea.C:61]
            fl_handle_it   [objects.c]
            fl_handle_object [libforms.a]
            fl_handle_form [forms.c]
            do_keyboard    [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
======================================================================



Reply via email to