[MusicXML import] assert fails in TDuration::TDuration(...)
Reported version
3.6
Type
Functional
Frequency
Once
Severity
S4 - Minor
Reproducibility
Always
Status
active
Regression
No
Workaround
No
Project
Importing the attached file using a debug build of 3.x results in a failed assert:
libmscore/durationtype.cpp:unknown: ASSERT: "truncate || (fraction() - l).numerator() == 0"
In 3.x (commit f7639dc of May 29, 2021) this is caused by the TDuration constructor call in file importmxmlpass2.cpp line 4465. An invalid duration for an aborted tuplet leads to a missing duration that cannot be represented as a single note value. Similar code is still present in today's master.
This issue as described may only concern only debug builds, but on production builds it may lead to invalid note timing (still to be investigated).
Attachment | Size |
---|---|
tuplet_double_start.xml | 3.48 KB |
Comments
f7639dc is supposed to fix #321730: Crash on corrupt MXL import and didn't add that assert, nor has any potential to cause any grief as far as I can see, it just prevents dereferencing a null pointer under certain circumstances.
Same fix is in master, 9e41653