#include "system.hh"
#include "warn.hh"
-using std::vector;
-
Grob *
Spanner::clone () const
{
Pointer_group_interface::add_grob (i, ly_symbol2scm ("bounded-by-me"), this);
}
+Preinit_Spanner::Preinit_Spanner ()
+{
+ spanned_drul_.set (0, 0);
+ pure_property_cache_ = SCM_UNDEFINED;
+}
+
Spanner::Spanner (SCM s)
: Grob (s)
{
break_index_ = 0;
- spanned_drul_.set (0, 0);
- pure_property_cache_ = SCM_UNDEFINED;
}
Spanner::Spanner (Spanner const &s)
: Grob (s)
{
- spanned_drul_.set (0, 0);
- pure_property_cache_ = SCM_UNDEFINED;
+ break_index_ = 0;
}
/*
scm_gc_mark (spanned_drul_[d]->self_scm ());
;
- for (vsize i = broken_intos_.size (); i--;)
- scm_gc_mark (broken_intos_[i]->self_scm ());
+ // If break_index_ is -1, broken_intos_ might not yet have run its
+ // constructor and any access might break things.
+ if (break_index_ != (vsize)-1)
+ for (vsize i = broken_intos_.size (); i--;)
+ scm_gc_mark (broken_intos_[i]->self_scm ());
}
/*