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:21:28 -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))
scm_is_eq

https://codereview.appspot.com/575990043/diff/577740043/lily/mutable-properties.cc#newcode71
lily/mutable-properties.cc:71: if (SCM_EQ_P (key (i), k))
scm_is_eq

https://codereview.appspot.com/575990043/diff/577740043/lily/mutable-properties.cc#newcode97
lily/mutable-properties.cc:97: if (SCM_EQ_P (key (i), k))
scm_is_eq

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.

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



reply via email to

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