Status: Accepted
Owner: ----
Labels: Type-Crash
New issue 2030 by pkx1...@gmail.com: 2.14.2, dynamic cast crash introduced
in commit 6f6369c0
http://code.google.com/p/lilypond/issues/detail?id=2030
Hello!
Lilypond 2.14.2 and the current revision from stable/2.14 crash on this
file:
\version "2.14.2"
\score {
\new PianoStaff <<
\new Staff = "right" { \change Staff="left" }
\new Staff = "left" { s1 }
>>
\layout { }
}
Bisection finds that the regression was introduced on the stable branch
(!!!) by this commit:
6f6369c0e143402296e51708fddb8e3cc875dd09 is the first bad commit
commit 6f6369c0e143402296e51708fddb8e3cc875dd09
Author: Joe Neeman <joenee...@gmail.com>
Date: Fri May 27 18:57:16 2011 +0300
Emit not-quite-cross-staff beams in the right context.
This is related to 1043 and possibly other bugs. Previously,
if a staff change happened immediately after the termination of
an auto-engraved cross-staff beam, then the beam was parented
to the wrong staff. Now, every beam is parented to the context
in which it began.
:040000 040000 9fb6f0e342f2e64ca9b56c2d6e0d02556895e983
f248a9e0cc58847fddc0ad98e7eb839b8d3dbc60 M lily
And that's what gdb shows for the current stable/2.14:
GNU LilyPond 2.14.2
Processing `bad.ly'
Parsing...
Interpreting music...
Program received signal SIGSEGV, Segmentation fault.
__cxxabiv1::__dynamic_cast (src_ptr=0x7fffffffffff, src_type=0xae1870,
dst_type=0xad9ea0, src2dst=-1)
at ../../../../libstdc++-v3/libsupc++/dyncast.cc:51 51 const
void *vtable = *static_cast <const void *const *> (src_ptr); (gdb) up
#1 0x000000000054cef4 in Engraver_group::announce_grob (this=0xc8c840,
info=...) at engraver-group.cc:83 83 : 0; (gdb) l
78 }
79
80 Engraver_group *dad_eng
81 = dad_con
82 ? dynamic_cast<Engraver_group *> (dad_con->implementation
()) 83 : 0;
84
85 if (dad_eng)
86 dad_eng->announce_grob (info);
87 }
(gdb)
dad_con was introduced by the commit in question. It looks like
dad_con->implementation is of a wrong type. I hope it should be easy
to fix for somebody who knows C++.
_______________________________________________
bug-lilypond mailing list
bug-lilypond@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-lilypond