[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Lilypond-auto] Issue 3636 in lilypond: suicided grobs should never be u
From: |
lilypond |
Subject: |
[Lilypond-auto] Issue 3636 in lilypond: suicided grobs should never be used for anything |
Date: |
Mon, 28 Oct 2013 06:08:49 +0000 |
Status: Accepted
Owner: address@hidden
Labels: Type-Maintainability
New issue 3636 by address@hidden: suicided grobs should never be used for
anything
http://code.google.com/p/lilypond/issues/detail?id=3636
Fixing issue 3631 has revealed that, in some parts of the code, suicided
Items (Items responding negatively to is_live) contain information that is
used by LilyPond for spacing. This seems contradictory to the idea of grob
suicide. If Grob::suicide is:
void
Grob::suicide ()
{
if (!is_live ())
return;
for (int a = X_AXIS; a < NO_AXES; a++)
dim_cache_[a].clear ();
mutable_property_alist_ = SCM_EOL;
object_alist_ = SCM_EOL;
immutable_property_alist_ = SCM_EOL;
interfaces_ = SCM_EOL;
}
then an Item::suicide should be
Item::suicide ()
{
if (!is_live ())
return;
broken_to_drul_[LEFT] = broken_to_drul_[RIGHT] = 0;
cached_pure_height_valid_ = false;
Interval cached_pure_height_ = Interval ();
Grob::suicide();
}
other subclasses of grob should have more robust suicide methods as well.
This better design choice would mean that prebroken dependencies can no
longer be accessed after a suicide, which would be a problem for
Axis_group_interface::internal_calc_pure_relevant_grobs as well as perhaps
other functions.
--
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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Lilypond-auto] Issue 3636 in lilypond: suicided grobs should never be used for anything,
lilypond <=