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
==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)
-- 
lyx-devel mailing list
lyx-devel@lists.lyx.org
http://lists.lyx.org/mailman/listinfo/lyx-devel

Reply via email to