crash in Glissando::layout() when delete a bunch of measures in someone's big score

• Dec 31, 2018 - 16:04
Reported version
3.0
Type
Functional
Frequency
Once
Severity
S3 - Major
Reproducibility
Always
Status
active
Regression
No
Workaround
No
Project
  1. open Thunderbolt_March.mscz (it's a big score)
  2. open timeline.
  3. select measures 35 to the end.
  4. delete them (ctrl->delete)

result: crash

MuseScore3.exe!Ms::System::firstMeasure() Line 896  C++
MuseScore3.exe!Ms::Glissando::layout() Line 283 C++
MuseScore3.exe!Ms::LayoutContext::collectPage() Line 4024   C++
MuseScore3.exe!Ms::LayoutContext::layout() Line 4207    C++
MuseScore3.exe!Ms::Score::doLayoutRange(int stick, int etick) Line 4194 C++
MuseScore3.exe!Ms::Score::update() Line 220 C++
MuseScore3.exe!Ms::Score::endCmd(bool rollback) Line 180    C++
MuseScore3.exe!Ms::Score::cmd(const QAction * a, Ms::EditData & ed) Line 3694   C++
MuseScore3.exe!Ms::ScoreView::cmd(const char * s) Line 2314 C++
MuseScore3.exe!Ms::ScoreView::cmd(const QAction * a) Line 1761  C++
MuseScore3.exe!Ms::MuseScore::cmd(QAction * a, const QString & cmd) Line 6087   C++
MuseScore3.exe!Ms::MuseScore::cmd(QAction * a) Line 5578    C++
MuseScore3.exe!Ms::MuseScore::qt_static_metacall(QObject * _o, QMetaObject::Call _c, int _id, void * * _a) Line 850 C++

It seems system() returns NULL in line 277 of glissando.cpp:

     if (cr2->segment()->measure() == cr2->segment()->system()->firstMeasure() && cr2->rtick() == 0