lilypond-devel
[Top][All Lists]
Advanced

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

Re: Rewrite Mutable_properties based on vector<SCM> (issue 575990043 by


From: dak
Subject: Re: Rewrite Mutable_properties based on vector<SCM> (issue 575990043 by address@hidden)
Date: Mon, 13 Apr 2020 13:26:10 -0700

On 2020/04/13 20:21:29, dak wrote:

>
https://codereview.appspot.com/575990043/diff/577740043/lily/mutable-properties.cc#newcode109
> lily/mutable-properties.cc:109: Mutable_properties::mark () const
> This can segfault in GUILEv2 and/or depending on some other
circumstances since
> the C++ members are only getting initialized after the GC hook is
already
> operative.
> 
> You need to sort the C++ structures potentially accessed by the GC
hook into a
> Preinit class (grep for Preinit for existing uses) and inherit from
that before
> inheriting from whatever operates the Smob.  Then C++ guarantees an
> initialisation order consistent with GC hook operation.

Actually, a less involved implementation where the value cell is SCM is
to just use a Scheme vector.  That also significantly speeds up garbage
collection relying on mark hooks because then only a single scm_gc_mark
call is made and Guile does the rest internally.

https://codereview.appspot.com/575990043/



reply via email to

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