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: hanwenn
Subject: Re: Rewrite Mutable_properties based on vector<SCM> (issue 575990043 by address@hidden)
Date: Mon, 13 Apr 2020 14:13:41 -0700

https://codereview.appspot.com/575990043/diff/577740043/lily/mutable-properties.cc
File lily/mutable-properties.cc (right):

https://codereview.appspot.com/575990043/diff/577740043/lily/mutable-properties.cc#newcode50
lily/mutable-properties.cc:50: if (SCM_EQ_P (key (i), k))
On 2020/04/13 20:21:29, dak wrote:
> scm_is_eq

Done.

https://codereview.appspot.com/575990043/diff/577740043/lily/mutable-properties.cc#newcode71
lily/mutable-properties.cc:71: if (SCM_EQ_P (key (i), k))
On 2020/04/13 20:21:28, dak wrote:
> scm_is_eq

Done.

https://codereview.appspot.com/575990043/diff/577740043/lily/mutable-properties.cc#newcode97
lily/mutable-properties.cc:97: if (SCM_EQ_P (key (i), k))
On 2020/04/13 20:21:28, dak wrote:
> scm_is_eq

Done.

https://codereview.appspot.com/575990043/diff/577740043/lily/mutable-properties.cc#newcode109
lily/mutable-properties.cc:109: Mutable_properties::mark () const
On 2020/04/13 20:21:29, dak wrote:
> 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.

I read the comment about this, but this only applies to derived classes,
right? This is set in the Grob class, which is the base class, so the
vector is init'd before smobify_self is called.

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



reply via email to

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