lilypond-auto
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Lilypond-auto] Issue 2392 in lilypond: Segfault in connection with


From: lilypond
Subject: Re: [Lilypond-auto] Issue 2392 in lilypond: Segfault in connection with \applyContext
Date: Tue, 22 Oct 2013 17:37:48 +0000


Comment #12 on issue 2392 by address@hidden: Segfault in connection with \applyContext
http://code.google.com/p/lilypond/issues/detail?id=2392

I've take a look at how to solve this properly, namely make sure that every engraver gets to see start-translation-timestep before process-music.

Huh boy.  The issue arises in the global_context.cc code when it does

      send_stream_event (this, "Prepare", 0,
                         ly_symbol2scm ("moment"), w.smobbed_copy ());

      if (iter->ok ())
        iter->process (w);

      send_stream_event (this, "OneTimeStep", 0, 0);

And obviously, when iter->process creates any new contexts, those get to see OneTimeStep before Prepare. It's reasonably easy to set a flag in the global context during iteration that basically says "every context created now should run the OneTimeStep of its translators".

Except that it is not the contexts themselves that listen to Prepare, rather it is the Score engraver and/or Score performer. Well, partly. They do it for the precompiled translators. The other translators listen themselves. Or something.

It's a twisted little maze of passages. So at the current point of time, I've given up on a proper fix in a timely manner. This patch here at least helps against the crash. That's not fabulous, but it addresses the most pressing problem.

--
You received this message because this project is configured to send all issue notifications to this address.
You may adjust your notification preferences at:
https://code.google.com/hosting/settings



reply via email to

[Prev in Thread] Current Thread [Next in Thread]