const char Context_def::type_p_name_[] = "ly:context-def?";
int
-Context_def::print_smob (SCM smob, SCM port, scm_print_state *)
+Context_def::print_smob (SCM port, scm_print_state *)
{
- Context_def *me = (Context_def *) SCM_CELL_WORD_1 (smob);
-
scm_puts ("#<Context_def ", port);
- scm_display (me->context_name_, port);
+ scm_display (context_name_, port);
scm_puts (" ", port);
- string loc = me->origin ()->location_string ();
+ string loc = origin ()->location_string ();
scm_puts (loc.c_str (), port);
scm_puts (">", port);
return 1;
const char Context_mod::type_p_name_[] = "ly:context-mod?";
int
-Context_mod::print_smob (SCM smob, SCM port, scm_print_state *)
+Context_mod::print_smob (SCM port, scm_print_state *)
{
- Context_mod *me = (Context_mod *) SCM_CELL_WORD_1 (smob);
-
scm_puts ("#<Context_mod ", port);
- scm_display (me->get_mods (), port);
+ scm_display (get_mods (), port);
scm_puts (">", port);
return 1;
}
}
int
-Context::print_smob (SCM s, SCM port, scm_print_state *)
+Context::print_smob (SCM port, scm_print_state *)
{
- Context *sc = (Context *) SCM_CELL_WORD_1 (s);
-
scm_puts ("#<", port);
- scm_puts (sc->class_name (), port);
- if (Context_def *d = Context_def::unsmob (sc->definition_))
+ scm_puts (class_name (), port);
+ if (Context_def *d = Context_def::unsmob (definition_))
{
scm_puts (" ", port);
scm_display (d->get_context_name (), port);
}
- if (!sc->id_string_.empty ())
+ if (!id_string_.empty ())
{
scm_puts ("=", port);
- scm_puts (sc->id_string_.c_str (), port);
+ scm_puts (id_string_.c_str (), port);
}
scm_puts (" ", port);
- scm_display (sc->context_list_, port);
+ scm_display (context_list_, port);
scm_puts (" >", port);
return 1;
}
int
-Dispatcher::print_smob (SCM s, SCM p, scm_print_state *)
+Dispatcher::print_smob (SCM p, scm_print_state *)
{
- Dispatcher *me = (Dispatcher *) SCM_CELL_WORD_1 (s);
scm_puts ("#<Dispatcher ", p);
scm_write (scm_call_1 (ly_lily_module_constant ("hash-table->alist"),
- me->listeners_), p);
+ listeners_), p);
scm_puts (">", p);
return 1;
}
int
-Duration::print_smob (SCM s, SCM port, scm_print_state *)
+Duration::print_smob (SCM port, scm_print_state *)
{
- Duration *r = (Duration *) SCM_CELL_WORD_1 (s);
-
scm_puts ("#<Duration ", port);
- scm_display (ly_string2scm (r->to_string ()), port);
+ scm_display (ly_string2scm (to_string ()), port);
scm_puts (" >", port);
return 1;
}
int
-Font_metric::print_smob (SCM s, SCM port, scm_print_state *)
+Font_metric::print_smob (SCM port, scm_print_state *)
{
- Font_metric *m = Font_metric::unsmob (s);
scm_puts ("#<", port);
- scm_puts (m->class_name (), port);
+ scm_puts (class_name (), port);
scm_puts (" ", port);
- scm_write (m->description_, port);
+ scm_write (description_, port);
scm_puts (">", port);
return 1;
}
}
int
-Grob_array::print_smob (SCM arr, SCM port, scm_print_state *)
+Grob_array::print_smob (SCM port, scm_print_state *)
{
scm_puts ("#<Grob_array", port);
-
- Grob_array *grob_arr = unsmob (arr);
- for (vsize i = 0; i < grob_arr->size (); i++)
+ for (vsize i = 0; i < size (); i++)
{
- scm_display (grob_arr->grob (i)->self_scm (), port);
+ scm_display (grob (i)->self_scm (), port);
scm_puts (" ", port);
}
scm_puts (">", port);
}
int
-Grob::print_smob (SCM s, SCM port, scm_print_state *)
+Grob::print_smob (SCM port, scm_print_state *)
{
- Grob *sc = (Grob *) SCM_CELL_WORD_1 (s);
-
scm_puts ("#<Grob ", port);
- scm_puts ((char *) sc->name ().c_str (), port);
+ scm_puts ((char *) name ().c_str (), port);
/* Do not print properties, that is too much hassle. */
scm_puts (" >", port);
struct Context_def : public Smob<Context_def>
{
SCM mark_smob ();
- static int print_smob (SCM, SCM, scm_print_state *);
+ int print_smob (SCM, scm_print_state *);
static const char type_p_name_[];
virtual ~Context_def ();
private:
struct Context_mod : public Simple_smob<Context_mod>
{
SCM mark_smob ();
- static int print_smob (SCM, SCM, scm_print_state *);
+ int print_smob (SCM, scm_print_state *);
static const char type_p_name_[];
private:
SCM mods_;
{
public:
SCM mark_smob ();
- static int print_smob (SCM, SCM, scm_print_state *);
+ int print_smob (SCM, scm_print_state *);
static const char type_p_name_[];
virtual ~Context ();
private:
class Dispatcher : public Smob<Dispatcher>
{
public:
- static int print_smob (SCM, SCM, scm_print_state *);
+ int print_smob (SCM, scm_print_state *);
SCM mark_smob ();
static const char type_p_name_[];
virtual ~Dispatcher ();
struct Duration : public Simple_smob<Duration>
{
static SCM equal_p (SCM, SCM);
- static int print_smob (SCM, SCM, scm_print_state *);
+ int print_smob (SCM, scm_print_state *);
static const char type_p_name_[];
Duration ();
Duration (int, int);
class Font_metric : public Smob<Font_metric>
{
public:
- static int print_smob (SCM, SCM, scm_print_state *);
+ int print_smob (SCM, scm_print_state *);
SCM mark_smob ();
static const char type_p_name_[];
virtual ~Font_metric ();
class Grob_array : public Simple_smob<Grob_array>
{
public:
- static int print_smob (SCM, SCM, scm_print_state *);
+ int print_smob (SCM, scm_print_state *);
SCM mark_smob ();
static const char type_p_name_[];
private:
class Grob : public Smob<Grob>
{
public:
- static int print_smob (SCM, SCM, scm_print_state *);
+ int print_smob (SCM, scm_print_state *);
SCM mark_smob ();
static const char type_p_name_[];
virtual ~Grob ();
Source_file *source_file_;
public:
static const char type_p_name_[];
- static int print_smob (SCM, SCM, scm_print_state *);
+ int print_smob (SCM, scm_print_state *);
static SCM equal_p (SCM, SCM);
SCM mark_smob ();
Source_file *get_source_file () const;
class Lily_lexer : public Smob<Lily_lexer>, public Includable_lexer
{
public:
- static int print_smob (SCM, SCM, scm_print_state *);
+ int print_smob (SCM, scm_print_state *);
SCM mark_smob ();
static const char type_p_name_[];
virtual ~Lily_lexer ();
class Lily_parser : public Smob<Lily_parser>
{
public:
- static int print_smob (SCM, SCM, scm_print_state *);
+ int print_smob (SCM, scm_print_state *);
SCM mark_smob ();
static const char type_p_name_[];
virtual ~Lily_parser ();
{
public:
static SCM equal_p (SCM, SCM);
- static int print_smob (SCM, SCM, scm_print_state *);
+ int print_smob (SCM, scm_print_state *);
static const char type_p_name_[];
Moment ();
Moment (int m);
public:
static const char type_p_name_[];
SCM mark_smob ();
- static int print_smob (SCM, SCM, scm_print_state *);
+ int print_smob (SCM, scm_print_state *);
SCM get_signature () { return scm1 (); }
SCM get_function () { return scm2 (); }
};
class Music_iterator : public Smob<Music_iterator>
{
public:
- static int print_smob (SCM, SCM, scm_print_state *);
+ int print_smob (SCM, scm_print_state *);
SCM mark_smob ();
static const char type_p_name_[];
virtual ~Music_iterator ();
class Music_output : public Smob<Music_output>
{
public:
- static int print_smob (SCM, SCM, scm_print_state *);
+ int print_smob (SCM, scm_print_state *);
SCM mark_smob ();
static const char type_p_name_[];
virtual ~Music_output ();
class Output_def : public Smob<Output_def>
{
public:
- static int print_smob (SCM, SCM, scm_print_state *);
+ int print_smob (SCM, scm_print_state *);
SCM mark_smob ();
static const char type_p_name_[];
virtual ~Output_def ();
{
public:
static SCM equal_p (SCM, SCM);
- static int print_smob (SCM, SCM, scm_print_state *);
+ int print_smob (SCM, scm_print_state *);
SCM mark_smob ();
static const char type_p_name_[];
private:
class Prob : public Smob<Prob>
{
public:
- static int print_smob (SCM, SCM, scm_print_state *);
+ int print_smob (SCM, scm_print_state *);
SCM mark_smob ();
static SCM equal_p (SCM, SCM);
static const char type_p_name_[];
class Scheme_listener : public Smob<Scheme_listener>
{
public:
- static int print_smob (SCM, SCM, scm_print_state *);
+ int print_smob (SCM, scm_print_state *);
SCM mark_smob ();
virtual ~Scheme_listener ();
Scheme_listener (SCM callback);
class Scheme_hash_table : public Smob<Scheme_hash_table>
{
public:
- static int print_smob (SCM, SCM, scm_print_state *);
+ int print_smob (SCM, scm_print_state *);
SCM mark_smob ();
virtual ~Scheme_hash_table ();
bool try_retrieve (SCM key, SCM *val);
{
public:
SCM expression() const { return scm1 (); }
- static int print_smob (SCM, SCM, scm_print_state *);
+ int print_smob (SCM, scm_print_state *);
static const char type_p_name_[];
};
class Skyline_pair : public Simple_smob<Skyline_pair>
{
public:
- static int print_smob (SCM, SCM, scm_print_state *);
static const char type_p_name_[];
private:
Drul_array<Skyline> skylines_;
static SCM mark_trampoline (SCM); // Used for calling mark_smob
static size_t free_smob (SCM obj);
static SCM equal_p (SCM, SCM);
-
- // print_smob is the exception. It is unconditionally passed to
- // GUILE since the default output of, say, #<Context_mod 0x7352414>
- // would depend on memory layout, thus being unsuitable for regtest
- // comparisons unless filtered.
- static int print_smob (SCM, SCM, scm_print_state *);
+ int print_smob (SCM, scm_print_state *);
+ static int print_trampoline (SCM, SCM, scm_print_state *);
// type_p_name_ can be overriden in the Super class with a static
// const char [] string. This requires both a declaration in the
return (Super::unsmob (arg))->mark_smob ();
}
+template <class Super>
+int
+Smob_base<Super>::print_trampoline (SCM arg, SCM port, scm_print_state *p)
+{
+ return (Super::unsmob (arg))->print_smob (port, p);
+}
+
template <class Super>
SCM
Smob_base<Super>::register_ptr (Super *p)
template <class Super>
int
-Smob_base<Super>::print_smob (SCM, SCM p, scm_print_state *)
+Smob_base<Super>::print_smob (SCM p, scm_print_state *)
{
scm_puts ("#<", p);
scm_puts (smob_name_.c_str (), p);
scm_set_smob_free (smob_tag_, Super::free_smob);
if (&Super::mark_smob != &Smob_base<Super>::mark_smob)
scm_set_smob_mark (smob_tag_, Super::mark_trampoline);
- scm_set_smob_print (smob_tag_, Super::print_smob);
+ scm_set_smob_print (smob_tag_, Super::print_trampoline);
if (&Super::equal_p != &Smob_base<Super>::equal_p)
scm_set_smob_equalp (smob_tag_, Super::equal_p);
if (Super::type_p_name_ != 0)
class Source_file : public Smob<Source_file>
{
public:
- static int print_smob (SCM, SCM, scm_print_state *);
+ int print_smob (SCM, scm_print_state *);
SCM mark_smob ();
static const char type_p_name_[];
virtual ~Source_file ();
{
public:
SCM mark_smob ();
- static int print_smob (SCM, SCM, scm_print_state *);
static const char type_p_name_[];
private:
Box dim_;
{
public:
SCM mark_smob ();
- static int print_smob (SCM, SCM, scm_print_state *);
+ int print_smob (SCM, scm_print_state *);
static const char type_p_name_[];
virtual ~Translator_group ();
private:
class Translator : public Smob<Translator>
{
public:
- static int print_smob (SCM, SCM, scm_print_state *);
+ int print_smob (SCM, scm_print_state *);
SCM mark_smob ();
static const char type_p_name_[];
virtual ~Translator ();
return Smob2<Unpure_pure_container>::make_smob (a, a);
return Smob2<Unpure_pure_container>::make_smob (a, b);
}
- static int print_smob (SCM, SCM, scm_print_state *);
+ int print_smob (SCM, scm_print_state *);
};
#endif /* UNPURE_PURE_CONTAINER_HH */
}
int
-Input::print_smob (SCM s, SCM port, scm_print_state *)
+Input::print_smob (SCM port, scm_print_state *)
{
- string str = "#<location " + Input::unsmob (s)->location_string () + ">";
+ string str = "#<location " + location_string () + ">";
scm_puts (str.c_str (), port);
return 1;
}
}
int
-Lily_lexer::print_smob (SCM s, SCM port, scm_print_state *)
+Lily_lexer::print_smob (SCM port, scm_print_state *)
{
- Lily_lexer *lexer = Lily_lexer::unsmob (s);
-
scm_puts ("#<Lily_lexer ", port);
- scm_display (lexer->scopes_, port);
+ scm_display (scopes_, port);
scm_puts (" >", port);
return 1;
}
}
int
-Lily_parser::print_smob (SCM s, SCM port, scm_print_state *)
+Lily_parser::print_smob (SCM port, scm_print_state *)
{
scm_puts ("#<Lily_parser ", port);
- Lily_parser *parser = (Lily_parser *) SCM_CELL_WORD_1 (s);
- if (parser->lexer_)
- scm_display (parser->lexer_->self_scm (), port);
+ if (lexer_)
+ scm_display (lexer_->self_scm (), port);
else
scm_puts ("(no lexer yet)", port);
scm_puts (" >", port);
int
-Moment::print_smob (SCM s, SCM port, scm_print_state *)
+Moment::print_smob (SCM port, scm_print_state *)
{
- Moment *r = (Moment *) SCM_CELL_WORD_1 (s);
-
scm_puts ("#<Mom ", port);
- string str = r->to_string ();
+ string str = to_string ();
scm_puts ((char *)str.c_str (), port);
scm_puts (">", port);
/* Print a textual represenation of the smob to a given port. */
int
-Music_function::print_smob (SCM b, SCM port, scm_print_state *)
+Music_function::print_smob (SCM port, scm_print_state *)
{
scm_puts ("#<Music function ", port);
- scm_write (Music_function::unsmob (b)->get_function (), port);
+ scm_write (get_function (), port);
scm_puts (">", port);
/* Non-zero means success. */
}
int
-Music_iterator::print_smob (SCM sm, SCM port, scm_print_state *)
+Music_iterator::print_smob (SCM port, scm_print_state *)
{
char s[1000];
- Music_iterator *iter = Music_iterator::unsmob (sm);
- sprintf (s, "#<%s>", iter->class_name ());
+ sprintf (s, "#<%s>", class_name ());
scm_puts (s, port);
return 1;
}
}
int
-Music_output::print_smob (SCM s, SCM p, scm_print_state *)
+Music_output::print_smob (SCM p, scm_print_state *)
{
- Music_output *sc = (Music_output *) SCM_CELL_WORD_1 (s);
scm_puts ("#<", p);
- scm_puts (sc->class_name (), p);
+ scm_puts (class_name (), p);
scm_puts (">", p);
return 1;
}
int
-Output_def::print_smob (SCM s, SCM p, scm_print_state *)
+Output_def::print_smob (SCM p, scm_print_state *)
{
- Output_def * def = Output_def::unsmob (s);
scm_puts ("#< ", p);
- scm_puts (def->class_name (), p);
+ scm_puts (class_name (), p);
scm_puts (">", p);
return 1;
}
}
int
-Pitch::print_smob (SCM s, SCM port, scm_print_state *)
+Pitch::print_smob (SCM port, scm_print_state *)
{
- Pitch *r = (Pitch *) SCM_CELL_WORD_1 (s);
scm_puts ("#<Pitch ", port);
- scm_display (ly_string2scm (r->to_string ()), port);
+ scm_display (ly_string2scm (to_string ()), port);
scm_puts (" >", port);
return 1;
}
}
int
-Prob::print_smob (SCM smob, SCM port, scm_print_state *)
+Prob::print_smob (SCM port, scm_print_state *)
{
- Prob *p = (Prob *) SCM_CELL_WORD_1 (smob);
scm_puts ("#<", port);
scm_puts ("Prob: ", port);
- scm_display (p->type_, port);
+ scm_display (type_, port);
scm_puts (" C++: ", port);
- scm_puts (p->class_name (), port);
- scm_display (p->mutable_property_alist_, port);
- scm_display (p->immutable_property_alist_, port);
+ scm_puts (class_name (), port);
+ scm_display (mutable_property_alist_, port);
+ scm_display (immutable_property_alist_, port);
scm_puts (" >\n", port);
return 1;
}
int
-Scheme_listener::print_smob (SCM obj, SCM p, scm_print_state *)
+Scheme_listener::print_smob (SCM p, scm_print_state *)
{
- Scheme_listener *me = (Scheme_listener *) SCM_CELL_WORD_1 (obj);
scm_puts ("#<Scheme_listener ", p);
- scm_write (me->callback_, p);
+ scm_write (callback_, p);
scm_puts (">", p);
return 1;
}
}
int
-Scheme_hash_table::print_smob (SCM s, SCM p, scm_print_state *)
+Scheme_hash_table::print_smob (SCM p, scm_print_state *)
{
- assert (is_smob (s));
scm_puts ("#<Scheme_hash_table ", p);
- Scheme_hash_table *me = (Scheme_hash_table *) SCM_CELL_WORD_1 (s);
- scm_display (me->hash_tab_, p);
+ scm_display (hash_tab_, p);
scm_puts ("> ", p);
return 1;
}
}
int
-Simple_closure::print_smob (SCM s, SCM port, scm_print_state *)
+Simple_closure::print_smob (SCM port, scm_print_state *)
{
scm_puts ("#<simple-closure ", port);
- scm_display (scm_cdr (s), port);
+ scm_display (expression (), port);
scm_puts (" >", port);
return 1;
}
const char Skyline_pair::type_p_name_[] = "ly:skyline-pair?";
-int
-Skyline_pair::print_smob (SCM s, SCM port, scm_print_state *)
-{
- Skyline_pair *r = (Skyline_pair *) SCM_CELL_WORD_1 (s);
- (void) r;
-
- scm_puts ("#<Skyline-pair>", port);
- return 1;
-}
-
MAKE_SCHEME_CALLBACK (Skyline_pair, skyline, 2);
SCM
Skyline_pair::skyline (SCM smob, SCM dir_scm)
}
int
-Source_file::print_smob (SCM smob, SCM port, scm_print_state *)
+Source_file::print_smob (SCM port, scm_print_state *)
{
- Source_file *sc = (Source_file *) SCM_CELL_WORD_1 (smob);
-
scm_puts ("#<Source_file ", port);
- scm_puts (sc->name_.c_str (), port);
+ scm_puts (name_.c_str (), port);
/* Do not print properties, that is too much hassle. */
scm_puts (" >", port);
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 ()
{
const char Translator_group::type_p_name_[] = "ly:translator-group?";
int
-Translator_group::print_smob (SCM s, SCM port, scm_print_state *)
+Translator_group::print_smob (SCM port, scm_print_state *)
{
- Translator_group *me = (Translator_group *) SCM_CELL_WORD_1 (s);
scm_puts ("#<Translator_group ", port);
- scm_puts (me->class_name (), port);
- scm_display (me->simple_trans_list_, port);
+ scm_puts (class_name (), port);
+ scm_display (simple_trans_list_, port);
scm_puts (" >", port);
return 1;
}
}
int
-Translator::print_smob (SCM s, SCM port, scm_print_state *)
+Translator::print_smob (SCM port, scm_print_state *)
{
- Translator *me = (Translator *) SCM_CELL_WORD_1 (s);
scm_puts ("#<Translator ", port);
- scm_puts (me->class_name (), port);
+ scm_puts (class_name (), port);
scm_puts (" >", port);
return 1;
}
class Undead : public Simple_smob<Undead>
{
public:
- static int print_smob (SCM, SCM, scm_print_state *);
+ int print_smob (SCM, scm_print_state *);
SCM mark_smob ();
static const char type_p_name_[];
private:
}
int
-Undead::print_smob (SCM undead,
- SCM port,
- scm_print_state *)
+Undead::print_smob (SCM port, scm_print_state *)
{
scm_puts ("#<Undead ", port);
- scm_display (Undead::unsmob (undead)->object (), port);
+ scm_display (object (), port);
scm_puts (" >", port);
return 1;
}
}
int
-Unpure_pure_container::print_smob (SCM s, SCM port, scm_print_state *)
+Unpure_pure_container::print_smob (SCM port, scm_print_state *)
{
- Unpure_pure_container *p = Unpure_pure_container::unsmob (s);
scm_puts ("#<unpure-pure-container ", port);
- scm_display (p->unpure_part (), port);
- if (!p->is_unchanging ())
+ scm_display (unpure_part (), port);
+ if (!is_unchanging ())
{
scm_puts (" ", port);
- scm_display (p->pure_part (), port);
+ scm_display (pure_part (), port);
}
scm_puts (" >", port);
return 1;