SIGSEGV on master regarding math completion
Jean-Marc Lasgouttes
lasgouttes at lyx.org
Thu Jan 27 16:26:33 UTC 2022
Le 10/01/2022 à 03:49, Scott Kostyshak a écrit :
> To reproduce:
>
> 1. Start a new document.
> 2. Ctrl + m to start math inset.
> 3. Type \phantomx<Space>. Note that \phantomx is not a command so don't
> expect it to be recognized.
> 4. Press <Left>, <Backspace>, <Backspace> to delete the "x" and the "m".
> 5. Type "m" to finish "phantom".
> 6. Wait for the completion pop-down to appear (this takes a second).
> 7. Press <Tab>.
>
> I tried to find a more simple recipe to reproduce but could not.
So, on Ubuntu 20.04, valgrind is more useful. I attache the log below,
but here is the gist of it:
1/ the error
==2557222== Invalid read of size 8
==2557222== at 0xB3B5C1: lyx::Inset::isBufferValid() const
(Inset.cpp:230)
[...]
==2557222== by 0xA1382F:
lyx::RowPainter::paintInset(lyx::Row::Element const&) const
(RowPainter.cpp:116)
Here one can see that the code in devel-mode that paints in red insets
that do not have a buffer looks at buffer methods. This does not work
because...
2/ the culprit
==2557222== Address 0xf9e0708 is 8 bytes inside a block of size 32 free'd
==2557222== at 0x483CFBF: operator delete(void*) (in
/usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==2557222== by 0xA23A6E: lyx::InsetMathChar::~InsetMathChar()
(InsetMathChar.h:22)
[...]
lyx::InsetMathMacro::insertCompletion(lyx::Cursor&,
std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>,
std::allocator<wchar_t> > const&, bool) (InsetMathMacro.cpp:1376)
We are pointing to an inset that has been deleted at completion time.
3/ the context
==2557222== Block was alloc'd at
==2557222== at 0x483BE63: operator new(unsigned long) (in
/usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==2557222== by 0xA22447: lyx::InsetMathChar::clone() const
(InsetMathChar.cpp:104)
[...]
lyx::InsetMathMacro::setDisplayMode(lyx::InsetMathMacro::DisplayMode,
int) (InsetMathMacro.cpp:825)
So finally, the MathRow object points to an inset that has been deleted
at the time of the completion. There should be code somewhere that
should regenerate the math row. I'll have a look.
JMarc
-------------- next part --------------
==2557222== Memcheck, a memory error detector
==2557222== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==2557222== Using Valgrind-3.15.0 and LibVEX; rerun with -h for copyright info
==2557222== Command: src/lyx
==2557222==
--2557222-- WARNING: unhandled amd64-linux syscall: 315
--2557222-- You may be able to write your own handler.
--2557222-- Read the file README_MISSING_SYSCALL_OR_IOCTL.
--2557222-- Nevertheless we consider this a bug. Please report
--2557222-- it at http://valgrind.org/support/bug_reports.html.
==2557222== Invalid read of size 8
==2557222== at 0xB3B5C1: lyx::Inset::isBufferValid() const (Inset.cpp:230)
==2557222== by 0xAEDCB1: lyx::MathRow::draw(lyx::PainterInfo&, int, int) const (MathRow.cpp:327)
==2557222== by 0xAAEB8B: lyx::MathData::draw(lyx::PainterInfo&, int, int) const (MathData.cpp:356)
==2557222== by 0xA6ABA4: lyx::InsetMathMacro::draw(lyx::PainterInfo&, int, int) const (InsetMathMacro.cpp:756)
==2557222== by 0xAED744: lyx::MathRow::draw(lyx::PainterInfo&, int, int) const (MathRow.cpp:330)
==2557222== by 0xAAEB8B: lyx::MathData::draw(lyx::PainterInfo&, int, int) const (MathData.cpp:356)
==2557222== by 0xA30FAC: lyx::InsetMathGrid::draw(lyx::PainterInfo&, int, int) const (InsetMathGrid.cpp:601)
==2557222== by 0xA4E187: lyx::InsetMathHull::draw(lyx::PainterInfo&, int, int) const (InsetMathHull.cpp:667)
==2557222== by 0xA1382F: lyx::RowPainter::paintInset(lyx::Row::Element const&) const (RowPainter.cpp:116)
==2557222== by 0xA14BBF: lyx::RowPainter::paintText() (RowPainter.cpp:563)
==2557222== by 0x909ABF: lyx::TextMetrics::drawParagraph(lyx::PainterInfo&, long, int, int) const (TextMetrics.cpp:2074)
==2557222== by 0x90CE4C: lyx::TextMetrics::draw(lyx::PainterInfo&, int, int) const (TextMetrics.cpp:1919)
==2557222== Address 0xf9e0708 is 8 bytes inside a block of size 32 free'd
==2557222== at 0x483CFBF: operator delete(void*) (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==2557222== by 0xA23A6E: lyx::InsetMathChar::~InsetMathChar() (InsetMathChar.h:22)
==2557222== by 0xAA3866: operator() (unique_ptr.h:81)
==2557222== by 0xAA3866: reset (unique_ptr.h:402)
==2557222== by 0xAA3866: operator= (unique_ptr.h:307)
==2557222== by 0xAA3866: operator= (MathAtom.h:49)
==2557222== by 0xAA3866: lyx::MathAtom::operator=(lyx::MathAtom const&) (MathAtom.cpp:34)
==2557222== by 0xA1F520: __copy_m<const lyx::MathAtom*, lyx::MathAtom*> (stl_algobase.h:342)
==2557222== by 0xA1F520: __copy_move_a<false, const lyx::MathAtom*, lyx::MathAtom*> (stl_algobase.h:404)
==2557222== by 0xA1F520: __copy_move_a2<false, __gnu_cxx::__normal_iterator<const lyx::MathAtom*, std::__cxx1998::vector<lyx::MathAtom, std::allocator<lyx::MathAtom> > >, __gnu_cxx::__normal_iterator<lyx::MathAtom*, std::__cxx1998::vector<lyx::MathAtom, std::allocator<lyx::MathAtom> > > > (stl_algobase.h:440)
==2557222== by 0xA1F520: copy<__gnu_cxx::__normal_iterator<const lyx::MathAtom*, std::__cxx1998::vector<lyx::MathAtom, std::allocator<lyx::MathAtom> > >, __gnu_cxx::__normal_iterator<lyx::MathAtom*, std::__cxx1998::vector<lyx::MathAtom, std::allocator<lyx::MathAtom> > > > (stl_algobase.h:474)
==2557222== by 0xA1F520: std::__cxx1998::vector<lyx::MathAtom, std::allocator<lyx::MathAtom> >::operator=(std::__cxx1998::vector<lyx::MathAtom, std::allocator<lyx::MathAtom> > const&) (vector.tcc:238)
==2557222== by 0xAD7D7E: operator= (vector:118)
==2557222== by 0xAD7D7E: operator= (MathData.h:49)
==2557222== by 0xAD7D7E: lyx::(anonymous namespace)::Parser::parse(lyx::MathData&, unsigned int, lyx::Inset::mode_type) (MathParser.cpp:784)
==2557222== by 0xAD80E7: lyx::mathed_parse_cell(lyx::MathData&, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > const&, lyx::Parse::flags) (MathParser.cpp:2153)
==2557222== by 0xAF3EA6: lyx::asArray(std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > const&, lyx::MathData&, lyx::Parse::flags) (MathSupport.cpp:1076)
==2557222== by 0xA6DC87: lyx::InsetMathMacro::insertCompletion(lyx::Cursor&, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > const&, bool) (InsetMathMacro.cpp:1376)
==2557222== by 0xE8E216: lyx::frontend::GuiCompleter::tab() (GuiCompleter.cpp:698)
==2557222== by 0xE8F19E: lyx::frontend::GuiCompleter::eventFilter(QObject*, QEvent*) (GuiCompleter.cpp:218)
==2557222== by 0x583851A: QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.12.8)
==2557222== by 0x4A96A54: QApplicationPrivate::notify_helper(QObject*, QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5.12.8)
==2557222== Block was alloc'd at
==2557222== at 0x483BE63: operator new(unsigned long) (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==2557222== by 0xA22447: lyx::InsetMathChar::clone() const (InsetMathChar.cpp:104)
==2557222== by 0xAA381C: lyx::MathAtom::MathAtom(lyx::MathAtom const&) (MathAtom.cpp:27)
==2557222== by 0xA1F5A1: _Construct<lyx::MathAtom, const lyx::MathAtom&> (stl_construct.h:75)
==2557222== by 0xA1F5A1: __uninit_copy<__gnu_cxx::__normal_iterator<const lyx::MathAtom*, std::__cxx1998::vector<lyx::MathAtom, std::allocator<lyx::MathAtom> > >, lyx::MathAtom*> (stl_uninitialized.h:83)
==2557222== by 0xA1F5A1: uninitialized_copy<__gnu_cxx::__normal_iterator<const lyx::MathAtom*, std::__cxx1998::vector<lyx::MathAtom, std::allocator<lyx::MathAtom> > >, lyx::MathAtom*> (stl_uninitialized.h:140)
==2557222== by 0xA1F5A1: __uninitialized_copy_a<__gnu_cxx::__normal_iterator<const lyx::MathAtom*, std::__cxx1998::vector<lyx::MathAtom, std::allocator<lyx::MathAtom> > >, lyx::MathAtom*, lyx::MathAtom> (stl_uninitialized.h:307)
==2557222== by 0xA1F5A1: _M_allocate_and_copy<__gnu_cxx::__normal_iterator<const lyx::MathAtom*, std::__cxx1998::vector<lyx::MathAtom, std::allocator<lyx::MathAtom> > > > (stl_vector.h:1511)
==2557222== by 0xA1F5A1: std::__cxx1998::vector<lyx::MathAtom, std::allocator<lyx::MathAtom> >::operator=(std::__cxx1998::vector<lyx::MathAtom, std::allocator<lyx::MathAtom> > const&) (vector.tcc:226)
==2557222== by 0xAD7D7E: operator= (vector:118)
==2557222== by 0xAD7D7E: operator= (MathData.h:49)
==2557222== by 0xAD7D7E: lyx::(anonymous namespace)::Parser::parse(lyx::MathData&, unsigned int, lyx::Inset::mode_type) (MathParser.cpp:784)
==2557222== by 0xAD80E7: lyx::mathed_parse_cell(lyx::MathData&, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > const&, lyx::Parse::flags) (MathParser.cpp:2153)
==2557222== by 0xAF3EA6: lyx::asArray(std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > const&, lyx::MathData&, lyx::Parse::flags) (MathSupport.cpp:1076)
==2557222== by 0xA66601: lyx::InsetMathMacro::setDisplayMode(lyx::InsetMathMacro::DisplayMode, int) (InsetMathMacro.cpp:825)
==2557222== by 0xAAFE0B: lyx::MathData::updateMacros(lyx::Cursor*, lyx::MacroContext const&, lyx::UpdateType, int) (MathData.cpp:460)
==2557222== by 0xAB014D: lyx::MathData::addToMathRow(lyx::MathRow&, lyx::MetricsInfo&) const (MathData.cpp:229)
==2557222== by 0xAEB634: lyx::MathRow::MathRow(lyx::MetricsInfo&, lyx::MathData const*) (MathRow.cpp:156)
==2557222== by 0xAAE3BB: lyx::MathData::metrics(lyx::MetricsInfo&, lyx::Dimension&, bool) const (MathData.cpp:284)
==2557222==
==2557222== Invalid read of size 8
==2557222== at 0xB3B599: lyx::Inset::isBufferLoaded() const (Inset.cpp:223)
==2557222== by 0xB3B5D0: lyx::Inset::isBufferValid() const (Inset.cpp:230)
==2557222== by 0xAEDCB1: lyx::MathRow::draw(lyx::PainterInfo&, int, int) const (MathRow.cpp:327)
==2557222== by 0xAAEB8B: lyx::MathData::draw(lyx::PainterInfo&, int, int) const (MathData.cpp:356)
==2557222== by 0xA6ABA4: lyx::InsetMathMacro::draw(lyx::PainterInfo&, int, int) const (InsetMathMacro.cpp:756)
==2557222== by 0xAED744: lyx::MathRow::draw(lyx::PainterInfo&, int, int) const (MathRow.cpp:330)
==2557222== by 0xAAEB8B: lyx::MathData::draw(lyx::PainterInfo&, int, int) const (MathData.cpp:356)
==2557222== by 0xA30FAC: lyx::InsetMathGrid::draw(lyx::PainterInfo&, int, int) const (InsetMathGrid.cpp:601)
==2557222== by 0xA4E187: lyx::InsetMathHull::draw(lyx::PainterInfo&, int, int) const (InsetMathHull.cpp:667)
==2557222== by 0xA1382F: lyx::RowPainter::paintInset(lyx::Row::Element const&) const (RowPainter.cpp:116)
==2557222== by 0xA14BBF: lyx::RowPainter::paintText() (RowPainter.cpp:563)
==2557222== by 0x909ABF: lyx::TextMetrics::drawParagraph(lyx::PainterInfo&, long, int, int) const (TextMetrics.cpp:2074)
==2557222== Address 0xf9e0708 is 8 bytes inside a block of size 32 free'd
==2557222== at 0x483CFBF: operator delete(void*) (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==2557222== by 0xA23A6E: lyx::InsetMathChar::~InsetMathChar() (InsetMathChar.h:22)
==2557222== by 0xAA3866: operator() (unique_ptr.h:81)
==2557222== by 0xAA3866: reset (unique_ptr.h:402)
==2557222== by 0xAA3866: operator= (unique_ptr.h:307)
==2557222== by 0xAA3866: operator= (MathAtom.h:49)
==2557222== by 0xAA3866: lyx::MathAtom::operator=(lyx::MathAtom const&) (MathAtom.cpp:34)
==2557222== by 0xA1F520: __copy_m<const lyx::MathAtom*, lyx::MathAtom*> (stl_algobase.h:342)
==2557222== by 0xA1F520: __copy_move_a<false, const lyx::MathAtom*, lyx::MathAtom*> (stl_algobase.h:404)
==2557222== by 0xA1F520: __copy_move_a2<false, __gnu_cxx::__normal_iterator<const lyx::MathAtom*, std::__cxx1998::vector<lyx::MathAtom, std::allocator<lyx::MathAtom> > >, __gnu_cxx::__normal_iterator<lyx::MathAtom*, std::__cxx1998::vector<lyx::MathAtom, std::allocator<lyx::MathAtom> > > > (stl_algobase.h:440)
==2557222== by 0xA1F520: copy<__gnu_cxx::__normal_iterator<const lyx::MathAtom*, std::__cxx1998::vector<lyx::MathAtom, std::allocator<lyx::MathAtom> > >, __gnu_cxx::__normal_iterator<lyx::MathAtom*, std::__cxx1998::vector<lyx::MathAtom, std::allocator<lyx::MathAtom> > > > (stl_algobase.h:474)
==2557222== by 0xA1F520: std::__cxx1998::vector<lyx::MathAtom, std::allocator<lyx::MathAtom> >::operator=(std::__cxx1998::vector<lyx::MathAtom, std::allocator<lyx::MathAtom> > const&) (vector.tcc:238)
==2557222== by 0xAD7D7E: operator= (vector:118)
==2557222== by 0xAD7D7E: operator= (MathData.h:49)
==2557222== by 0xAD7D7E: lyx::(anonymous namespace)::Parser::parse(lyx::MathData&, unsigned int, lyx::Inset::mode_type) (MathParser.cpp:784)
==2557222== by 0xAD80E7: lyx::mathed_parse_cell(lyx::MathData&, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > const&, lyx::Parse::flags) (MathParser.cpp:2153)
==2557222== by 0xAF3EA6: lyx::asArray(std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > const&, lyx::MathData&, lyx::Parse::flags) (MathSupport.cpp:1076)
==2557222== by 0xA6DC87: lyx::InsetMathMacro::insertCompletion(lyx::Cursor&, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > const&, bool) (InsetMathMacro.cpp:1376)
==2557222== by 0xE8E216: lyx::frontend::GuiCompleter::tab() (GuiCompleter.cpp:698)
==2557222== by 0xE8F19E: lyx::frontend::GuiCompleter::eventFilter(QObject*, QEvent*) (GuiCompleter.cpp:218)
==2557222== by 0x583851A: QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.12.8)
==2557222== by 0x4A96A54: QApplicationPrivate::notify_helper(QObject*, QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5.12.8)
==2557222== Block was alloc'd at
==2557222== at 0x483BE63: operator new(unsigned long) (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==2557222== by 0xA22447: lyx::InsetMathChar::clone() const (InsetMathChar.cpp:104)
==2557222== by 0xAA381C: lyx::MathAtom::MathAtom(lyx::MathAtom const&) (MathAtom.cpp:27)
==2557222== by 0xA1F5A1: _Construct<lyx::MathAtom, const lyx::MathAtom&> (stl_construct.h:75)
==2557222== by 0xA1F5A1: __uninit_copy<__gnu_cxx::__normal_iterator<const lyx::MathAtom*, std::__cxx1998::vector<lyx::MathAtom, std::allocator<lyx::MathAtom> > >, lyx::MathAtom*> (stl_uninitialized.h:83)
==2557222== by 0xA1F5A1: uninitialized_copy<__gnu_cxx::__normal_iterator<const lyx::MathAtom*, std::__cxx1998::vector<lyx::MathAtom, std::allocator<lyx::MathAtom> > >, lyx::MathAtom*> (stl_uninitialized.h:140)
==2557222== by 0xA1F5A1: __uninitialized_copy_a<__gnu_cxx::__normal_iterator<const lyx::MathAtom*, std::__cxx1998::vector<lyx::MathAtom, std::allocator<lyx::MathAtom> > >, lyx::MathAtom*, lyx::MathAtom> (stl_uninitialized.h:307)
==2557222== by 0xA1F5A1: _M_allocate_and_copy<__gnu_cxx::__normal_iterator<const lyx::MathAtom*, std::__cxx1998::vector<lyx::MathAtom, std::allocator<lyx::MathAtom> > > > (stl_vector.h:1511)
==2557222== by 0xA1F5A1: std::__cxx1998::vector<lyx::MathAtom, std::allocator<lyx::MathAtom> >::operator=(std::__cxx1998::vector<lyx::MathAtom, std::allocator<lyx::MathAtom> > const&) (vector.tcc:226)
==2557222== by 0xAD7D7E: operator= (vector:118)
==2557222== by 0xAD7D7E: operator= (MathData.h:49)
==2557222== by 0xAD7D7E: lyx::(anonymous namespace)::Parser::parse(lyx::MathData&, unsigned int, lyx::Inset::mode_type) (MathParser.cpp:784)
==2557222== by 0xAD80E7: lyx::mathed_parse_cell(lyx::MathData&, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > const&, lyx::Parse::flags) (MathParser.cpp:2153)
==2557222== by 0xAF3EA6: lyx::asArray(std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > const&, lyx::MathData&, lyx::Parse::flags) (MathSupport.cpp:1076)
==2557222== by 0xA66601: lyx::InsetMathMacro::setDisplayMode(lyx::InsetMathMacro::DisplayMode, int) (InsetMathMacro.cpp:825)
==2557222== by 0xAAFE0B: lyx::MathData::updateMacros(lyx::Cursor*, lyx::MacroContext const&, lyx::UpdateType, int) (MathData.cpp:460)
==2557222== by 0xAB014D: lyx::MathData::addToMathRow(lyx::MathRow&, lyx::MetricsInfo&) const (MathData.cpp:229)
==2557222== by 0xAEB634: lyx::MathRow::MathRow(lyx::MetricsInfo&, lyx::MathData const*) (MathRow.cpp:156)
==2557222== by 0xAAE3BB: lyx::MathData::metrics(lyx::MetricsInfo&, lyx::Dimension&, bool) const (MathData.cpp:284)
==2557222==
==2557222== Invalid read of size 8
==2557222== at 0xB3B5AC: lyx::Inset::isBufferLoaded() const (Inset.cpp:223)
==2557222== by 0xB3B5D0: lyx::Inset::isBufferValid() const (Inset.cpp:230)
==2557222== by 0xAEDCB1: lyx::MathRow::draw(lyx::PainterInfo&, int, int) const (MathRow.cpp:327)
==2557222== by 0xAAEB8B: lyx::MathData::draw(lyx::PainterInfo&, int, int) const (MathData.cpp:356)
==2557222== by 0xA6ABA4: lyx::InsetMathMacro::draw(lyx::PainterInfo&, int, int) const (InsetMathMacro.cpp:756)
==2557222== by 0xAED744: lyx::MathRow::draw(lyx::PainterInfo&, int, int) const (MathRow.cpp:330)
==2557222== by 0xAAEB8B: lyx::MathData::draw(lyx::PainterInfo&, int, int) const (MathData.cpp:356)
==2557222== by 0xA30FAC: lyx::InsetMathGrid::draw(lyx::PainterInfo&, int, int) const (InsetMathGrid.cpp:601)
==2557222== by 0xA4E187: lyx::InsetMathHull::draw(lyx::PainterInfo&, int, int) const (InsetMathHull.cpp:667)
==2557222== by 0xA1382F: lyx::RowPainter::paintInset(lyx::Row::Element const&) const (RowPainter.cpp:116)
==2557222== by 0xA14BBF: lyx::RowPainter::paintText() (RowPainter.cpp:563)
==2557222== by 0x909ABF: lyx::TextMetrics::drawParagraph(lyx::PainterInfo&, long, int, int) const (TextMetrics.cpp:2074)
==2557222== Address 0xf9e0708 is 8 bytes inside a block of size 32 free'd
==2557222== at 0x483CFBF: operator delete(void*) (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==2557222== by 0xA23A6E: lyx::InsetMathChar::~InsetMathChar() (InsetMathChar.h:22)
==2557222== by 0xAA3866: operator() (unique_ptr.h:81)
==2557222== by 0xAA3866: reset (unique_ptr.h:402)
==2557222== by 0xAA3866: operator= (unique_ptr.h:307)
==2557222== by 0xAA3866: operator= (MathAtom.h:49)
==2557222== by 0xAA3866: lyx::MathAtom::operator=(lyx::MathAtom const&) (MathAtom.cpp:34)
==2557222== by 0xA1F520: __copy_m<const lyx::MathAtom*, lyx::MathAtom*> (stl_algobase.h:342)
==2557222== by 0xA1F520: __copy_move_a<false, const lyx::MathAtom*, lyx::MathAtom*> (stl_algobase.h:404)
==2557222== by 0xA1F520: __copy_move_a2<false, __gnu_cxx::__normal_iterator<const lyx::MathAtom*, std::__cxx1998::vector<lyx::MathAtom, std::allocator<lyx::MathAtom> > >, __gnu_cxx::__normal_iterator<lyx::MathAtom*, std::__cxx1998::vector<lyx::MathAtom, std::allocator<lyx::MathAtom> > > > (stl_algobase.h:440)
==2557222== by 0xA1F520: copy<__gnu_cxx::__normal_iterator<const lyx::MathAtom*, std::__cxx1998::vector<lyx::MathAtom, std::allocator<lyx::MathAtom> > >, __gnu_cxx::__normal_iterator<lyx::MathAtom*, std::__cxx1998::vector<lyx::MathAtom, std::allocator<lyx::MathAtom> > > > (stl_algobase.h:474)
==2557222== by 0xA1F520: std::__cxx1998::vector<lyx::MathAtom, std::allocator<lyx::MathAtom> >::operator=(std::__cxx1998::vector<lyx::MathAtom, std::allocator<lyx::MathAtom> > const&) (vector.tcc:238)
==2557222== by 0xAD7D7E: operator= (vector:118)
==2557222== by 0xAD7D7E: operator= (MathData.h:49)
==2557222== by 0xAD7D7E: lyx::(anonymous namespace)::Parser::parse(lyx::MathData&, unsigned int, lyx::Inset::mode_type) (MathParser.cpp:784)
==2557222== by 0xAD80E7: lyx::mathed_parse_cell(lyx::MathData&, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > const&, lyx::Parse::flags) (MathParser.cpp:2153)
==2557222== by 0xAF3EA6: lyx::asArray(std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > const&, lyx::MathData&, lyx::Parse::flags) (MathSupport.cpp:1076)
==2557222== by 0xA6DC87: lyx::InsetMathMacro::insertCompletion(lyx::Cursor&, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > const&, bool) (InsetMathMacro.cpp:1376)
==2557222== by 0xE8E216: lyx::frontend::GuiCompleter::tab() (GuiCompleter.cpp:698)
==2557222== by 0xE8F19E: lyx::frontend::GuiCompleter::eventFilter(QObject*, QEvent*) (GuiCompleter.cpp:218)
==2557222== by 0x583851A: QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.12.8)
==2557222== by 0x4A96A54: QApplicationPrivate::notify_helper(QObject*, QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5.12.8)
==2557222== Block was alloc'd at
==2557222== at 0x483BE63: operator new(unsigned long) (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==2557222== by 0xA22447: lyx::InsetMathChar::clone() const (InsetMathChar.cpp:104)
==2557222== by 0xAA381C: lyx::MathAtom::MathAtom(lyx::MathAtom const&) (MathAtom.cpp:27)
==2557222== by 0xA1F5A1: _Construct<lyx::MathAtom, const lyx::MathAtom&> (stl_construct.h:75)
==2557222== by 0xA1F5A1: __uninit_copy<__gnu_cxx::__normal_iterator<const lyx::MathAtom*, std::__cxx1998::vector<lyx::MathAtom, std::allocator<lyx::MathAtom> > >, lyx::MathAtom*> (stl_uninitialized.h:83)
==2557222== by 0xA1F5A1: uninitialized_copy<__gnu_cxx::__normal_iterator<const lyx::MathAtom*, std::__cxx1998::vector<lyx::MathAtom, std::allocator<lyx::MathAtom> > >, lyx::MathAtom*> (stl_uninitialized.h:140)
==2557222== by 0xA1F5A1: __uninitialized_copy_a<__gnu_cxx::__normal_iterator<const lyx::MathAtom*, std::__cxx1998::vector<lyx::MathAtom, std::allocator<lyx::MathAtom> > >, lyx::MathAtom*, lyx::MathAtom> (stl_uninitialized.h:307)
==2557222== by 0xA1F5A1: _M_allocate_and_copy<__gnu_cxx::__normal_iterator<const lyx::MathAtom*, std::__cxx1998::vector<lyx::MathAtom, std::allocator<lyx::MathAtom> > > > (stl_vector.h:1511)
==2557222== by 0xA1F5A1: std::__cxx1998::vector<lyx::MathAtom, std::allocator<lyx::MathAtom> >::operator=(std::__cxx1998::vector<lyx::MathAtom, std::allocator<lyx::MathAtom> > const&) (vector.tcc:226)
==2557222== by 0xAD7D7E: operator= (vector:118)
==2557222== by 0xAD7D7E: operator= (MathData.h:49)
==2557222== by 0xAD7D7E: lyx::(anonymous namespace)::Parser::parse(lyx::MathData&, unsigned int, lyx::Inset::mode_type) (MathParser.cpp:784)
==2557222== by 0xAD80E7: lyx::mathed_parse_cell(lyx::MathData&, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > const&, lyx::Parse::flags) (MathParser.cpp:2153)
==2557222== by 0xAF3EA6: lyx::asArray(std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > const&, lyx::MathData&, lyx::Parse::flags) (MathSupport.cpp:1076)
==2557222== by 0xA66601: lyx::InsetMathMacro::setDisplayMode(lyx::InsetMathMacro::DisplayMode, int) (InsetMathMacro.cpp:825)
==2557222== by 0xAAFE0B: lyx::MathData::updateMacros(lyx::Cursor*, lyx::MacroContext const&, lyx::UpdateType, int) (MathData.cpp:460)
==2557222== by 0xAB014D: lyx::MathData::addToMathRow(lyx::MathRow&, lyx::MetricsInfo&) const (MathData.cpp:229)
==2557222== by 0xAEB634: lyx::MathRow::MathRow(lyx::MetricsInfo&, lyx::MathData const*) (MathRow.cpp:156)
==2557222== by 0xAAE3BB: lyx::MathData::metrics(lyx::MetricsInfo&, lyx::Dimension&, bool) const (MathData.cpp:284)
==2557222==
==2557222== Invalid read of size 8
==2557222== at 0xAED72F: lyx::MathRow::draw(lyx::PainterInfo&, int, int) const (MathRow.cpp:330)
==2557222== by 0xAAEB8B: lyx::MathData::draw(lyx::PainterInfo&, int, int) const (MathData.cpp:356)
==2557222== by 0xA6ABA4: lyx::InsetMathMacro::draw(lyx::PainterInfo&, int, int) const (InsetMathMacro.cpp:756)
==2557222== by 0xAED744: lyx::MathRow::draw(lyx::PainterInfo&, int, int) const (MathRow.cpp:330)
==2557222== by 0xAAEB8B: lyx::MathData::draw(lyx::PainterInfo&, int, int) const (MathData.cpp:356)
==2557222== by 0xA30FAC: lyx::InsetMathGrid::draw(lyx::PainterInfo&, int, int) const (InsetMathGrid.cpp:601)
==2557222== by 0xA4E187: lyx::InsetMathHull::draw(lyx::PainterInfo&, int, int) const (InsetMathHull.cpp:667)
==2557222== by 0xA1382F: lyx::RowPainter::paintInset(lyx::Row::Element const&) const (RowPainter.cpp:116)
==2557222== by 0xA14BBF: lyx::RowPainter::paintText() (RowPainter.cpp:563)
==2557222== by 0x909ABF: lyx::TextMetrics::drawParagraph(lyx::PainterInfo&, long, int, int) const (TextMetrics.cpp:2074)
==2557222== by 0x90CE4C: lyx::TextMetrics::draw(lyx::PainterInfo&, int, int) const (TextMetrics.cpp:1919)
==2557222== by 0x971CD3: lyx::BufferView::draw(lyx::frontend::Painter&, bool) (BufferView.cpp:3466)
==2557222== Address 0xf9e0700 is 0 bytes inside a block of size 32 free'd
==2557222== at 0x483CFBF: operator delete(void*) (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==2557222== by 0xA23A6E: lyx::InsetMathChar::~InsetMathChar() (InsetMathChar.h:22)
==2557222== by 0xAA3866: operator() (unique_ptr.h:81)
==2557222== by 0xAA3866: reset (unique_ptr.h:402)
==2557222== by 0xAA3866: operator= (unique_ptr.h:307)
==2557222== by 0xAA3866: operator= (MathAtom.h:49)
==2557222== by 0xAA3866: lyx::MathAtom::operator=(lyx::MathAtom const&) (MathAtom.cpp:34)
==2557222== by 0xA1F520: __copy_m<const lyx::MathAtom*, lyx::MathAtom*> (stl_algobase.h:342)
==2557222== by 0xA1F520: __copy_move_a<false, const lyx::MathAtom*, lyx::MathAtom*> (stl_algobase.h:404)
==2557222== by 0xA1F520: __copy_move_a2<false, __gnu_cxx::__normal_iterator<const lyx::MathAtom*, std::__cxx1998::vector<lyx::MathAtom, std::allocator<lyx::MathAtom> > >, __gnu_cxx::__normal_iterator<lyx::MathAtom*, std::__cxx1998::vector<lyx::MathAtom, std::allocator<lyx::MathAtom> > > > (stl_algobase.h:440)
==2557222== by 0xA1F520: copy<__gnu_cxx::__normal_iterator<const lyx::MathAtom*, std::__cxx1998::vector<lyx::MathAtom, std::allocator<lyx::MathAtom> > >, __gnu_cxx::__normal_iterator<lyx::MathAtom*, std::__cxx1998::vector<lyx::MathAtom, std::allocator<lyx::MathAtom> > > > (stl_algobase.h:474)
==2557222== by 0xA1F520: std::__cxx1998::vector<lyx::MathAtom, std::allocator<lyx::MathAtom> >::operator=(std::__cxx1998::vector<lyx::MathAtom, std::allocator<lyx::MathAtom> > const&) (vector.tcc:238)
==2557222== by 0xAD7D7E: operator= (vector:118)
==2557222== by 0xAD7D7E: operator= (MathData.h:49)
==2557222== by 0xAD7D7E: lyx::(anonymous namespace)::Parser::parse(lyx::MathData&, unsigned int, lyx::Inset::mode_type) (MathParser.cpp:784)
==2557222== by 0xAD80E7: lyx::mathed_parse_cell(lyx::MathData&, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > const&, lyx::Parse::flags) (MathParser.cpp:2153)
==2557222== by 0xAF3EA6: lyx::asArray(std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > const&, lyx::MathData&, lyx::Parse::flags) (MathSupport.cpp:1076)
==2557222== by 0xA6DC87: lyx::InsetMathMacro::insertCompletion(lyx::Cursor&, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > const&, bool) (InsetMathMacro.cpp:1376)
==2557222== by 0xE8E216: lyx::frontend::GuiCompleter::tab() (GuiCompleter.cpp:698)
==2557222== by 0xE8F19E: lyx::frontend::GuiCompleter::eventFilter(QObject*, QEvent*) (GuiCompleter.cpp:218)
==2557222== by 0x583851A: QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.12.8)
==2557222== by 0x4A96A54: QApplicationPrivate::notify_helper(QObject*, QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5.12.8)
==2557222== Block was alloc'd at
==2557222== at 0x483BE63: operator new(unsigned long) (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==2557222== by 0xA22447: lyx::InsetMathChar::clone() const (InsetMathChar.cpp:104)
==2557222== by 0xAA381C: lyx::MathAtom::MathAtom(lyx::MathAtom const&) (MathAtom.cpp:27)
==2557222== by 0xA1F5A1: _Construct<lyx::MathAtom, const lyx::MathAtom&> (stl_construct.h:75)
==2557222== by 0xA1F5A1: __uninit_copy<__gnu_cxx::__normal_iterator<const lyx::MathAtom*, std::__cxx1998::vector<lyx::MathAtom, std::allocator<lyx::MathAtom> > >, lyx::MathAtom*> (stl_uninitialized.h:83)
==2557222== by 0xA1F5A1: uninitialized_copy<__gnu_cxx::__normal_iterator<const lyx::MathAtom*, std::__cxx1998::vector<lyx::MathAtom, std::allocator<lyx::MathAtom> > >, lyx::MathAtom*> (stl_uninitialized.h:140)
==2557222== by 0xA1F5A1: __uninitialized_copy_a<__gnu_cxx::__normal_iterator<const lyx::MathAtom*, std::__cxx1998::vector<lyx::MathAtom, std::allocator<lyx::MathAtom> > >, lyx::MathAtom*, lyx::MathAtom> (stl_uninitialized.h:307)
==2557222== by 0xA1F5A1: _M_allocate_and_copy<__gnu_cxx::__normal_iterator<const lyx::MathAtom*, std::__cxx1998::vector<lyx::MathAtom, std::allocator<lyx::MathAtom> > > > (stl_vector.h:1511)
==2557222== by 0xA1F5A1: std::__cxx1998::vector<lyx::MathAtom, std::allocator<lyx::MathAtom> >::operator=(std::__cxx1998::vector<lyx::MathAtom, std::allocator<lyx::MathAtom> > const&) (vector.tcc:226)
==2557222== by 0xAD7D7E: operator= (vector:118)
==2557222== by 0xAD7D7E: operator= (MathData.h:49)
==2557222== by 0xAD7D7E: lyx::(anonymous namespace)::Parser::parse(lyx::MathData&, unsigned int, lyx::Inset::mode_type) (MathParser.cpp:784)
==2557222== by 0xAD80E7: lyx::mathed_parse_cell(lyx::MathData&, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > const&, lyx::Parse::flags) (MathParser.cpp:2153)
==2557222== by 0xAF3EA6: lyx::asArray(std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > const&, lyx::MathData&, lyx::Parse::flags) (MathSupport.cpp:1076)
==2557222== by 0xA66601: lyx::InsetMathMacro::setDisplayMode(lyx::InsetMathMacro::DisplayMode, int) (InsetMathMacro.cpp:825)
==2557222== by 0xAAFE0B: lyx::MathData::updateMacros(lyx::Cursor*, lyx::MacroContext const&, lyx::UpdateType, int) (MathData.cpp:460)
==2557222== by 0xAB014D: lyx::MathData::addToMathRow(lyx::MathRow&, lyx::MetricsInfo&) const (MathData.cpp:229)
==2557222== by 0xAEB634: lyx::MathRow::MathRow(lyx::MetricsInfo&, lyx::MathData const*) (MathRow.cpp:156)
==2557222== by 0xAAE3BB: lyx::MathData::metrics(lyx::MetricsInfo&, lyx::Dimension&, bool) const (MathData.cpp:284)
==2557222==
==2557222== Invalid read of size 4
==2557222== at 0xA22B82: lyx::InsetMathChar::draw(lyx::PainterInfo&, int, int) const (InsetMathChar.cpp:177)
==2557222== by 0xAED744: lyx::MathRow::draw(lyx::PainterInfo&, int, int) const (MathRow.cpp:330)
==2557222== by 0xAAEB8B: lyx::MathData::draw(lyx::PainterInfo&, int, int) const (MathData.cpp:356)
==2557222== by 0xA6ABA4: lyx::InsetMathMacro::draw(lyx::PainterInfo&, int, int) const (InsetMathMacro.cpp:756)
==2557222== by 0xAED744: lyx::MathRow::draw(lyx::PainterInfo&, int, int) const (MathRow.cpp:330)
==2557222== by 0xAAEB8B: lyx::MathData::draw(lyx::PainterInfo&, int, int) const (MathData.cpp:356)
==2557222== by 0xA30FAC: lyx::InsetMathGrid::draw(lyx::PainterInfo&, int, int) const (InsetMathGrid.cpp:601)
==2557222== by 0xA4E187: lyx::InsetMathHull::draw(lyx::PainterInfo&, int, int) const (InsetMathHull.cpp:667)
==2557222== by 0xA1382F: lyx::RowPainter::paintInset(lyx::Row::Element const&) const (RowPainter.cpp:116)
==2557222== by 0xA14BBF: lyx::RowPainter::paintText() (RowPainter.cpp:563)
==2557222== by 0x909ABF: lyx::TextMetrics::drawParagraph(lyx::PainterInfo&, long, int, int) const (TextMetrics.cpp:2074)
==2557222== by 0x90CE4C: lyx::TextMetrics::draw(lyx::PainterInfo&, int, int) const (TextMetrics.cpp:1919)
==2557222== Address 0xf9e0710 is 16 bytes inside a block of size 32 free'd
==2557222== at 0x483CFBF: operator delete(void*) (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==2557222== by 0xA23A6E: lyx::InsetMathChar::~InsetMathChar() (InsetMathChar.h:22)
==2557222== by 0xAA3866: operator() (unique_ptr.h:81)
==2557222== by 0xAA3866: reset (unique_ptr.h:402)
==2557222== by 0xAA3866: operator= (unique_ptr.h:307)
==2557222== by 0xAA3866: operator= (MathAtom.h:49)
==2557222== by 0xAA3866: lyx::MathAtom::operator=(lyx::MathAtom const&) (MathAtom.cpp:34)
==2557222== by 0xA1F520: __copy_m<const lyx::MathAtom*, lyx::MathAtom*> (stl_algobase.h:342)
==2557222== by 0xA1F520: __copy_move_a<false, const lyx::MathAtom*, lyx::MathAtom*> (stl_algobase.h:404)
==2557222== by 0xA1F520: __copy_move_a2<false, __gnu_cxx::__normal_iterator<const lyx::MathAtom*, std::__cxx1998::vector<lyx::MathAtom, std::allocator<lyx::MathAtom> > >, __gnu_cxx::__normal_iterator<lyx::MathAtom*, std::__cxx1998::vector<lyx::MathAtom, std::allocator<lyx::MathAtom> > > > (stl_algobase.h:440)
==2557222== by 0xA1F520: copy<__gnu_cxx::__normal_iterator<const lyx::MathAtom*, std::__cxx1998::vector<lyx::MathAtom, std::allocator<lyx::MathAtom> > >, __gnu_cxx::__normal_iterator<lyx::MathAtom*, std::__cxx1998::vector<lyx::MathAtom, std::allocator<lyx::MathAtom> > > > (stl_algobase.h:474)
==2557222== by 0xA1F520: std::__cxx1998::vector<lyx::MathAtom, std::allocator<lyx::MathAtom> >::operator=(std::__cxx1998::vector<lyx::MathAtom, std::allocator<lyx::MathAtom> > const&) (vector.tcc:238)
==2557222== by 0xAD7D7E: operator= (vector:118)
==2557222== by 0xAD7D7E: operator= (MathData.h:49)
==2557222== by 0xAD7D7E: lyx::(anonymous namespace)::Parser::parse(lyx::MathData&, unsigned int, lyx::Inset::mode_type) (MathParser.cpp:784)
==2557222== by 0xAD80E7: lyx::mathed_parse_cell(lyx::MathData&, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > const&, lyx::Parse::flags) (MathParser.cpp:2153)
==2557222== by 0xAF3EA6: lyx::asArray(std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > const&, lyx::MathData&, lyx::Parse::flags) (MathSupport.cpp:1076)
==2557222== by 0xA6DC87: lyx::InsetMathMacro::insertCompletion(lyx::Cursor&, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > const&, bool) (InsetMathMacro.cpp:1376)
==2557222== by 0xE8E216: lyx::frontend::GuiCompleter::tab() (GuiCompleter.cpp:698)
==2557222== by 0xE8F19E: lyx::frontend::GuiCompleter::eventFilter(QObject*, QEvent*) (GuiCompleter.cpp:218)
==2557222== by 0x583851A: QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.12.8)
==2557222== by 0x4A96A54: QApplicationPrivate::notify_helper(QObject*, QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5.12.8)
==2557222== Block was alloc'd at
==2557222== at 0x483BE63: operator new(unsigned long) (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==2557222== by 0xA22447: lyx::InsetMathChar::clone() const (InsetMathChar.cpp:104)
==2557222== by 0xAA381C: lyx::MathAtom::MathAtom(lyx::MathAtom const&) (MathAtom.cpp:27)
==2557222== by 0xA1F5A1: _Construct<lyx::MathAtom, const lyx::MathAtom&> (stl_construct.h:75)
==2557222== by 0xA1F5A1: __uninit_copy<__gnu_cxx::__normal_iterator<const lyx::MathAtom*, std::__cxx1998::vector<lyx::MathAtom, std::allocator<lyx::MathAtom> > >, lyx::MathAtom*> (stl_uninitialized.h:83)
==2557222== by 0xA1F5A1: uninitialized_copy<__gnu_cxx::__normal_iterator<const lyx::MathAtom*, std::__cxx1998::vector<lyx::MathAtom, std::allocator<lyx::MathAtom> > >, lyx::MathAtom*> (stl_uninitialized.h:140)
==2557222== by 0xA1F5A1: __uninitialized_copy_a<__gnu_cxx::__normal_iterator<const lyx::MathAtom*, std::__cxx1998::vector<lyx::MathAtom, std::allocator<lyx::MathAtom> > >, lyx::MathAtom*, lyx::MathAtom> (stl_uninitialized.h:307)
==2557222== by 0xA1F5A1: _M_allocate_and_copy<__gnu_cxx::__normal_iterator<const lyx::MathAtom*, std::__cxx1998::vector<lyx::MathAtom, std::allocator<lyx::MathAtom> > > > (stl_vector.h:1511)
==2557222== by 0xA1F5A1: std::__cxx1998::vector<lyx::MathAtom, std::allocator<lyx::MathAtom> >::operator=(std::__cxx1998::vector<lyx::MathAtom, std::allocator<lyx::MathAtom> > const&) (vector.tcc:226)
==2557222== by 0xAD7D7E: operator= (vector:118)
==2557222== by 0xAD7D7E: operator= (MathData.h:49)
==2557222== by 0xAD7D7E: lyx::(anonymous namespace)::Parser::parse(lyx::MathData&, unsigned int, lyx::Inset::mode_type) (MathParser.cpp:784)
==2557222== by 0xAD80E7: lyx::mathed_parse_cell(lyx::MathData&, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > const&, lyx::Parse::flags) (MathParser.cpp:2153)
==2557222== by 0xAF3EA6: lyx::asArray(std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > const&, lyx::MathData&, lyx::Parse::flags) (MathSupport.cpp:1076)
==2557222== by 0xA66601: lyx::InsetMathMacro::setDisplayMode(lyx::InsetMathMacro::DisplayMode, int) (InsetMathMacro.cpp:825)
==2557222== by 0xAAFE0B: lyx::MathData::updateMacros(lyx::Cursor*, lyx::MacroContext const&, lyx::UpdateType, int) (MathData.cpp:460)
==2557222== by 0xAB014D: lyx::MathData::addToMathRow(lyx::MathRow&, lyx::MetricsInfo&) const (MathData.cpp:229)
==2557222== by 0xAEB634: lyx::MathRow::MathRow(lyx::MetricsInfo&, lyx::MathData const*) (MathRow.cpp:156)
==2557222== by 0xAAE3BB: lyx::MathData::metrics(lyx::MetricsInfo&, lyx::Dimension&, bool) const (MathData.cpp:284)
==2557222==
==2557222==
==2557222== HEAP SUMMARY:
==2557222== in use at exit: 3,287,952 bytes in 28,452 blocks
==2557222== total heap usage: 1,843,340 allocs, 1,814,888 frees, 5,948,344,230 bytes allocated
==2557222==
==2557222== LEAK SUMMARY:
==2557222== definitely lost: 6,728 bytes in 28 blocks
==2557222== indirectly lost: 2,151 bytes in 101 blocks
==2557222== possibly lost: 3,984 bytes in 33 blocks
==2557222== still reachable: 3,192,457 bytes in 27,616 blocks
==2557222== of which reachable via heuristic:
==2557222== length64 : 4,960 bytes in 82 blocks
==2557222== newarray : 6,360 bytes in 52 blocks
==2557222== suppressed: 0 bytes in 0 blocks
==2557222== Rerun with --leak-check=full to see details of leaked memory
==2557222==
==2557222== For lists of detected and suppressed errors, rerun with: -s
==2557222== ERROR SUMMARY: 315 errors from 5 contexts (suppressed: 0 from 0)
More information about the lyx-devel
mailing list