/*
This file is part of LilyPond, the GNU music typesetter.
- Copyright (C) 1997--2014 Han-Wen Nienhuys <hanwen@xs4all.nl>
+ Copyright (C) 1997--2015 Han-Wen Nienhuys <hanwen@xs4all.nl>
LilyPond is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
#include "string-convert.hh"
#include "warn.hh"
-#include "ly-smobs.icc"
Stencil::Stencil ()
{
dim_ = b;
}
-int
-Stencil::print_smob (SCM, SCM port, scm_print_state *)
-{
- scm_puts ("#<Stencil ", port);
- scm_puts (" >", port);
- return 1;
-}
-
SCM
-Stencil::mark_smob (SCM smob)
+Stencil::mark_smob ()
{
- Stencil *s = (Stencil *) SCM_CELL_WORD_1 (smob);
- return s->expr_;
+ return expr_;
}
-IMPLEMENT_SIMPLE_SMOBS (Stencil);
-IMPLEMENT_TYPE_P (Stencil, "ly:stencil?");
-IMPLEMENT_DEFAULT_EQUAL_P (Stencil);
+const char Stencil::type_p_name_[] = "ly:stencil?";
Interval
Stencil::extent (Axis a) const
bool
Stencil::is_empty () const
{
- return (expr_ == SCM_EOL
+ return (scm_is_null (expr_)
|| dim_.is_empty ());
}
expr_ = scm_list_n (ly_symbol2scm ("translate-stencil"),
ly_offset2scm (o),
expr_, SCM_UNDEFINED);
- if (!is_empty ())
- dim_.translate (o);
+ dim_.translate (o);
}
void