SCM
-Book::mark_smob (SCM s)
+Book::mark_smob ()
{
- Book *book = (Book *) SCM_CELL_WORD_1 (s);
+ if (paper_)
+ scm_gc_mark (paper_->self_scm ());
+ scm_gc_mark (scores_);
+ scm_gc_mark (bookparts_);
+ scm_gc_mark (input_location_);
- if (book->paper_)
- scm_gc_mark (book->paper_->self_scm ());
- scm_gc_mark (book->scores_);
- scm_gc_mark (book->bookparts_);
- scm_gc_mark (book->input_location_);
-
- return book->header_;
+ return header_;
}
int
}
SCM
-Context_def::mark_smob (SCM smob)
+Context_def::mark_smob ()
{
- ASSERT_LIVE_IS_ALLOWED (smob);
-
- Context_def *me = (Context_def *) SCM_CELL_WORD_1 (smob);
-
- scm_gc_mark (me->description_);
- scm_gc_mark (me->context_aliases_);
- scm_gc_mark (me->accept_mods_);
- scm_gc_mark (me->translator_mods_);
- scm_gc_mark (me->property_ops_);
- scm_gc_mark (me->translator_group_type_);
- scm_gc_mark (me->default_child_);
- scm_gc_mark (me->input_location_);
-
- return me->context_name_;
+ ASSERT_LIVE_IS_ALLOWED (self_scm ());
+
+ scm_gc_mark (description_);
+ scm_gc_mark (context_aliases_);
+ scm_gc_mark (accept_mods_);
+ scm_gc_mark (translator_mods_);
+ scm_gc_mark (property_ops_);
+ scm_gc_mark (translator_group_type_);
+ scm_gc_mark (default_child_);
+ scm_gc_mark (input_location_);
+
+ return context_name_;
}
void
}
SCM
-Context_mod::mark_smob (SCM smob)
+Context_mod::mark_smob ()
{
- Context_mod *me = (Context_mod *) SCM_CELL_WORD_1 (smob);
-
- return me->mods_;
+ return mods_;
}
void
{
public:
static int print_smob (SCM, SCM, scm_print_state *);
- static SCM mark_smob (SCM);
+ SCM mark_smob ();
static const char type_p_name_[];
private:
friend class Grob_property_info;
const char Grob_properties::type_p_name_[] = "ly:grob-properties?";
SCM
-Grob_properties::mark_smob (SCM smob)
+Grob_properties::mark_smob ()
{
- Grob_properties *gp = (Grob_properties *) SCM_SMOB_DATA (smob);
- scm_gc_mark (gp->alist_);
- scm_gc_mark (gp->based_on_);
- scm_gc_mark (gp->cooked_);
- return gp->cooked_from_;
+ scm_gc_mark (alist_);
+ scm_gc_mark (based_on_);
+ scm_gc_mark (cooked_);
+ return cooked_from_;
}
int
}
SCM
-Context::mark_smob (SCM sm)
+Context::mark_smob ()
{
- Context *me = (Context *) SCM_CELL_WORD_1 (sm);
+ scm_gc_mark (context_list_);
+ scm_gc_mark (aliases_);
+ scm_gc_mark (definition_);
+ scm_gc_mark (definition_mods_);
+ scm_gc_mark (properties_scm_);
+ scm_gc_mark (accepts_list_);
+ scm_gc_mark (default_child_);
- scm_gc_mark (me->context_list_);
- scm_gc_mark (me->aliases_);
- scm_gc_mark (me->definition_);
- scm_gc_mark (me->definition_mods_);
- scm_gc_mark (me->properties_scm_);
- scm_gc_mark (me->accepts_list_);
- scm_gc_mark (me->default_child_);
+ if (implementation_)
+ scm_gc_mark (implementation_->self_scm ());
- if (me->implementation_)
- scm_gc_mark (me->implementation_->self_scm ());
+ if (event_source_)
+ scm_gc_mark (event_source_->self_scm ());
- if (me->event_source_)
- scm_gc_mark (me->event_source_->self_scm ());
+ if (events_below_)
+ scm_gc_mark (events_below_->self_scm ());
- if (me->events_below_)
- scm_gc_mark (me->events_below_->self_scm ());
-
- return me->properties_scm_;
+ return properties_scm_;
}
const char Context::type_p_name_[] = "ly:context?";
}
SCM
-Dispatcher::mark_smob (SCM sm)
+Dispatcher::mark_smob ()
{
- Dispatcher *me = (Dispatcher *) SCM_CELL_WORD_1 (sm);
- scm_gc_mark (me->dispatchers_);
- scm_gc_mark (me->listen_classes_);
- return me->listeners_;
+ scm_gc_mark (dispatchers_);
+ scm_gc_mark (listen_classes_);
+ return listeners_;
}
int
}
SCM
-Font_metric::mark_smob (SCM s)
+Font_metric::mark_smob ()
{
- Font_metric *m = (Font_metric *) SCM_CELL_WORD_1 (s);
- m->derived_mark ();
- return m->description_;
+ derived_mark ();
+ return description_;
}
int
}
SCM
-Grob_array::mark_smob (SCM s)
+Grob_array::mark_smob ()
{
- (void) s;
-
#if 0 /* see System::derived_mark () const */
Grob_array *ga = Grob_array::unsmob (s);
for (vsize i = 0; i < ga->grobs_.size (); i++)
const char Grob::type_p_name_[] = "ly:grob?";
SCM
-Grob::mark_smob (SCM ses)
+Grob::mark_smob ()
{
- ASSERT_LIVE_IS_ALLOWED (ses);
+ ASSERT_LIVE_IS_ALLOWED (self_scm ());
- Grob *s = (Grob *) SCM_CELL_WORD_1 (ses);
- scm_gc_mark (s->immutable_property_alist_);
+ scm_gc_mark (immutable_property_alist_);
/* Do not mark the parents. The pointers in the mutable
property list form two tree like structures (one for X
between X and Y in an erratic manner, leading to much more
recursion depth (and core dumps if we link to pthreads). */
- if (s->original ())
- scm_gc_mark (s->original ()->self_scm ());
+ if (original ())
+ scm_gc_mark (original ()->self_scm ());
- s->derived_mark ();
- scm_gc_mark (s->object_alist_);
- scm_gc_mark (s->interfaces_);
+ derived_mark ();
+ scm_gc_mark (object_alist_);
+ scm_gc_mark (interfaces_);
- return s->mutable_property_alist_;
+ return mutable_property_alist_;
}
int
{
public:
static int print_smob (SCM, SCM, scm_print_state *);
- static SCM mark_smob (SCM);
+ SCM mark_smob ();
static const char type_p_name_[];
virtual ~Book ();
SCM header_;
*/
struct Context_def : public Smob<Context_def>
{
- static SCM mark_smob (SCM);
+ SCM mark_smob ();
static int print_smob (SCM, SCM, scm_print_state *);
static const char type_p_name_[];
virtual ~Context_def ();
*/
struct Context_mod : public Simple_smob<Context_mod>
{
- static SCM mark_smob (SCM);
+ SCM mark_smob ();
static int print_smob (SCM, SCM, scm_print_state *);
static const char type_p_name_[];
private:
class Context : public Smob<Context>
{
public:
- static SCM mark_smob (SCM);
+ SCM mark_smob ();
static int print_smob (SCM, SCM, scm_print_state *);
static const char type_p_name_[];
virtual ~Context ();
{
public:
static int print_smob (SCM, SCM, scm_print_state *);
- static SCM mark_smob (SCM);
+ SCM mark_smob ();
static const char type_p_name_[];
virtual ~Dispatcher ();
private:
{
public:
static int print_smob (SCM, SCM, scm_print_state *);
- static SCM mark_smob (SCM);
+ SCM mark_smob ();
static const char type_p_name_[];
virtual ~Font_metric ();
private:
{
public:
static int print_smob (SCM, SCM, scm_print_state *);
- static SCM mark_smob (SCM);
+ SCM mark_smob ();
static const char type_p_name_[];
private:
vector<Grob *> grobs_;
{
public:
static int print_smob (SCM, SCM, scm_print_state *);
- static SCM mark_smob (SCM);
+ SCM mark_smob ();
static const char type_p_name_[];
virtual ~Grob ();
private:
static const char type_p_name_[];
static int print_smob (SCM, SCM, scm_print_state *);
static SCM equal_p (SCM, SCM);
- static SCM mark_smob (SCM);
+ SCM mark_smob ();
Source_file *get_source_file () const;
char const *start () const;
char const *end () const;
{
public:
static int print_smob (SCM, SCM, scm_print_state *);
- static SCM mark_smob (SCM);
+ SCM mark_smob ();
static const char type_p_name_[];
virtual ~Lily_lexer ();
private:
{
public:
static int print_smob (SCM, SCM, scm_print_state *);
- static SCM mark_smob (SCM);
+ SCM mark_smob ();
static const char type_p_name_[];
virtual ~Lily_parser ();
Lily_lexer *lexer_;
public:
static SCM equal_p (SCM, SCM);
static int print_smob (SCM, SCM, scm_print_state *);
- static SCM mark_smob (SCM);
+ SCM mark_smob ();
static const char type_p_name_[];
private:
void *target_;
{
public:
static const char type_p_name_[];
- static SCM mark_smob (SCM);
+ SCM mark_smob ();
static int print_smob (SCM, SCM, scm_print_state *);
SCM get_signature () { return scm1 (); }
SCM get_function () { return scm2 (); }
{
public:
static int print_smob (SCM, SCM, scm_print_state *);
- static SCM mark_smob (SCM);
+ SCM mark_smob ();
static const char type_p_name_[];
virtual ~Music_iterator ();
protected:
{
public:
static int print_smob (SCM, SCM, scm_print_state *);
- static SCM mark_smob (SCM);
+ SCM mark_smob ();
static const char type_p_name_[];
virtual ~Music_output ();
private:
{
public:
static int print_smob (SCM, SCM, scm_print_state *);
- static SCM mark_smob (SCM);
+ SCM mark_smob ();
virtual ~Output_def ();
VIRTUAL_COPY_CONSTRUCTOR (Output_def, Output_def);
{
public:
static int print_smob (SCM, SCM, scm_print_state *);
- static SCM mark_smob (SCM);
+ SCM mark_smob ();
static const char type_p_name_[];
virtual ~Page_marker ();
private:
{
public:
static int print_smob (SCM, SCM, scm_print_state *);
- static SCM mark_smob (SCM);
+ SCM mark_smob ();
static const char type_p_name_[];
virtual ~Paper_book ();
private:
{
public:
static int print_smob (SCM, SCM, scm_print_state *);
- static SCM mark_smob (SCM);
+ SCM mark_smob ();
virtual ~Paper_outputter ();
private:
SCM output_module_;
public:
static SCM equal_p (SCM, SCM);
static int print_smob (SCM, SCM, scm_print_state *);
- static SCM mark_smob (SCM);
+ SCM mark_smob ();
static const char type_p_name_[];
private:
int octave_;
{
public:
static int print_smob (SCM, SCM, scm_print_state *);
- static SCM mark_smob (SCM);
+ SCM mark_smob ();
static SCM equal_p (SCM, SCM);
static const char type_p_name_[];
virtual ~Prob ();
{
public:
static int print_smob (SCM, SCM, scm_print_state *);
- static SCM mark_smob (SCM);
+ SCM mark_smob ();
virtual ~Scheme_listener ();
Scheme_listener (SCM callback);
DECLARE_LISTENER (call);
{
public:
static int print_smob (SCM, SCM, scm_print_state *);
- static SCM mark_smob (SCM);
+ SCM mark_smob ();
virtual ~Scheme_hash_table ();
bool try_retrieve (SCM key, SCM *val);
bool contains (SCM key) const;
{
public:
static int print_smob (SCM, SCM, scm_print_state *);
- static SCM mark_smob (SCM);
+ SCM mark_smob ();
static const char type_p_name_[];
virtual ~Score ();
private:
SCM_RETURN_NEWSMOB (Smob_base<Super>::smob_tag (), SCM_UNPACK (arg1));
}
static const int free_smob = 0;
- static SCM mark_smob (SCM s) { return SCM_SMOB_OBJECT (s); };
+ SCM mark_smob () { return scm1 (); };
static Super *unchecked_unsmob (SCM s) {
return reinterpret_cast<Super *> (SCM_UNPACK (s));
}
SCM_UNPACK (arg2));
}
static const int free_smob = 0;
- static SCM mark_smob (SCM s)
+ SCM mark_smob ()
{
- scm_gc_mark (SCM_SMOB_OBJECT_2 (s));
- return SCM_SMOB_OBJECT (s);
+ scm_gc_mark (scm2 ());
+ return scm1 ();
}
static Super *unchecked_unsmob (SCM s) {
return reinterpret_cast<Super *> (SCM_UNPACK (s));
static const int free_smob = 0;
static SCM mark_smob (SCM s)
{
- scm_gc_mark (SCM_SMOB_OBJECT_3 (s));
- scm_gc_mark (SCM_SMOB_OBJECT_2 (s));
- return SCM_SMOB_OBJECT (s);
+ scm_gc_mark (scm3 ());
+ scm_gc_mark (scm2 ());
+ return scm1 ();
}
static Super *unchecked_unsmob (SCM s) {
return reinterpret_cast<Super *> (SCM_UNPACK (s));
// #<Context_mod 0x7352414> would depend on memory layout, thus
// being unsuitable for regtest comparisons unless filtered.
- static const int mark_smob = 0;
+ SCM mark_smob (void); // Should not be inline since we do an address
+ // comparison
+ static SCM mark_trampoline (SCM); // Used for calling mark_smob
static const int equal_p = 0;
static const int smob_proc = 0;
static const int smob_proc_signature_ = 0;
#include "smobs.hh"
#include <typeinfo>
+template <class Super>
+SCM
+Smob_base<Super>::mark_trampoline (SCM arg)
+{
+ return (Super::unsmob (arg))->mark_smob ();
+}
+
template <class Super>
SCM
Smob_base<Super>::register_ptr (Super *p)
return s;
}
+// Default, should not actually get called
+template <class Super>
+SCM
+Smob_base<Super>::mark_smob ()
+{
+ return SCM_UNSPECIFIED;
+}
+
template <class Super>
int
Smob_base<Super>::print_smob (SCM, SCM p, scm_print_state *)
if (Super::free_smob != 0)
scm_set_smob_free (smob_tag_, Super::free_smob);
- if (Super::mark_smob != 0)
- scm_set_smob_mark (smob_tag_, Super::mark_smob);
+ if (&Super::mark_smob != &Smob_base<Super>::mark_smob)
+ scm_set_smob_mark (smob_tag_, Super::mark_trampoline);
if (Super::print_smob != 0)
scm_set_smob_print (smob_tag_, Super::print_smob);
if (Super::equal_p != 0)
{
public:
static int print_smob (SCM, SCM, scm_print_state *);
- static SCM mark_smob (SCM);
+ SCM mark_smob ();
static const char type_p_name_[];
virtual ~Source_file ();
private:
class Stencil : public Simple_smob<Stencil>
{
public:
- static SCM mark_smob (SCM);
+ SCM mark_smob ();
static int print_smob (SCM, SCM, scm_print_state *);
static const char type_p_name_[];
private:
class Translator_group : public Smob<Translator_group>
{
public:
- static SCM mark_smob (SCM);
+ SCM mark_smob ();
static int print_smob (SCM, SCM, scm_print_state *);
static const char type_p_name_[];
virtual ~Translator_group ();
{
public:
static int print_smob (SCM, SCM, scm_print_state *);
- static SCM mark_smob (SCM);
+ SCM mark_smob ();
static const char type_p_name_[];
virtual ~Translator ();
private:
const char Input::type_p_name_[] = "ly:input-location?";
SCM
-Input::mark_smob (SCM s)
+Input::mark_smob ()
{
- Input *sc = unsmob (s);
-
- if (Source_file *sf = sc->get_source_file ())
+ if (Source_file *sf = get_source_file ())
return sf->self_scm ();
return SCM_EOL;
const char Lily_lexer::type_p_name_[] = "ly:lily-lexer?";
SCM
-Lily_lexer::mark_smob (SCM s)
+Lily_lexer::mark_smob ()
{
- ASSERT_LIVE_IS_ALLOWED (s);
-
- Lily_lexer *lexer = (Lily_lexer *) SCM_CELL_WORD_1 (s);
-
- scm_gc_mark (lexer->chordmodifier_tab_);
- if (lexer->parser_)
- scm_gc_mark (lexer->parser_->self_scm ());
- scm_gc_mark (lexer->pitchname_tab_stack_);
- scm_gc_mark (lexer->start_module_);
- scm_gc_mark (lexer->extra_tokens_);
- return lexer->scopes_;
+ ASSERT_LIVE_IS_ALLOWED (self_scm ());
+
+ scm_gc_mark (chordmodifier_tab_);
+ if (parser_)
+ scm_gc_mark (parser_->self_scm ());
+ scm_gc_mark (pitchname_tab_stack_);
+ scm_gc_mark (start_module_);
+ scm_gc_mark (extra_tokens_);
+ return scopes_;
}
int
}
SCM
-Lily_parser::mark_smob (SCM s)
+Lily_parser::mark_smob ()
{
- Lily_parser *parser = (Lily_parser *) SCM_CELL_WORD_1 (s);
- scm_gc_mark (parser->closures_);
- return (parser->lexer_) ? parser->lexer_->self_scm () : SCM_EOL;
+ scm_gc_mark (closures_);
+ return (lexer_) ? lexer_->self_scm () : SCM_EOL;
}
int
}
SCM
-Listener::mark_smob (SCM sm)
+Listener::mark_smob ()
{
- Listener *me = (Listener *) SCM_CELL_WORD_1 (sm);
- if (me->type_)
- (me->type_->mark_callback) (me->target_);
+ if (type_)
+ (type_->mark_callback) (target_);
return SCM_EOL;
}
}
SCM
-Music_function::mark_smob (SCM s)
+Music_function::mark_smob ()
{
- ASSERT_LIVE_IS_ALLOWED (s);
- return Smob2<Music_function>::mark_smob (s);
+ ASSERT_LIVE_IS_ALLOWED (self_scm ());
+ return Smob2<Music_function>::mark_smob ();
}
const char Music_iterator::type_p_name_[] = "ly:iterator?";
SCM
-Music_iterator::mark_smob (SCM smob)
+Music_iterator::mark_smob ()
{
- Music_iterator *mus = (Music_iterator *)SCM_CELL_WORD_1 (smob);
-
- mus->derived_mark ();
+ derived_mark ();
/*
Careful with GC, although we intend the following as pointers
only, we _must_ mark them.
/* Use handle_ directly as get_outlet is a virtual function and we
need to protect the context until Music_iterator::quit is being
run. */
- if (mus->handle_.get_context ())
- scm_gc_mark (mus->handle_.get_context ()->self_scm ());
- if (mus->music_)
- scm_gc_mark (mus->music_->self_scm ());
+ if (handle_.get_context ())
+ scm_gc_mark (handle_.get_context ()->self_scm ());
+ if (music_)
+ scm_gc_mark (music_->self_scm ());
return SCM_EOL;
}
const char Music_output::type_p_name_[] = "ly:music-output?";
SCM
-Music_output::mark_smob (SCM s)
+Music_output::mark_smob ()
{
- Music_output *sc = (Music_output *) SCM_CELL_WORD_1 (s);
-
- sc->derived_mark ();
+ derived_mark ();
return SCM_EOL;
}
SCM
-Output_def::mark_smob (SCM m)
+Output_def::mark_smob ()
{
- Output_def *mo = (Output_def*) SCM_CELL_WORD_1 (m);
-
/* FIXME: why is this necessary?
all paper_ should be protected by themselves. */
- if (mo->parent_)
- scm_gc_mark (mo->parent_->self_scm ());
+ if (parent_)
+ scm_gc_mark (parent_->self_scm ());
- return mo->scope_;
+ return scope_;
}
void
const char Page_marker::type_p_name_[] = "ly:page-marker?";
SCM
-Page_marker::mark_smob (SCM smob)
+Page_marker::mark_smob ()
{
- Page_marker *pm = (Page_marker *) SCM_CELL_WORD_1 (smob);
- scm_gc_mark (pm->symbol_);
- scm_gc_mark (pm->permission_);
- scm_gc_mark (pm->label_);
+ scm_gc_mark (symbol_);
+ scm_gc_mark (permission_);
+ scm_gc_mark (label_);
return SCM_EOL;
}
const char Paper_book::type_p_name_[] = "ly:paper-book?";
SCM
-Paper_book::mark_smob (SCM smob)
+Paper_book::mark_smob ()
{
- Paper_book *b = (Paper_book *) SCM_CELL_WORD_1 (smob);
- if (b->paper_)
- scm_gc_mark (b->paper_->self_scm ());
- if (b->parent_)
- scm_gc_mark (b->parent_->self_scm ());
- scm_gc_mark (b->header_);
- scm_gc_mark (b->header_0_);
- scm_gc_mark (b->pages_);
- scm_gc_mark (b->performances_);
- scm_gc_mark (b->scores_);
- scm_gc_mark (b->bookparts_);
- return b->systems_;
+ if (paper_)
+ scm_gc_mark (paper_->self_scm ());
+ if (parent_)
+ scm_gc_mark (parent_->self_scm ());
+ scm_gc_mark (header_);
+ scm_gc_mark (header_0_);
+ scm_gc_mark (pages_);
+ scm_gc_mark (performances_);
+ scm_gc_mark (scores_);
+ scm_gc_mark (bookparts_);
+ return systems_;
}
int
SCM
-Paper_outputter::mark_smob (SCM x)
+Paper_outputter::mark_smob ()
{
- Paper_outputter *p = (Paper_outputter *) SCM_CELL_WORD_1 (x);
- scm_gc_mark (p->output_module_);
- return p->file_;
+ scm_gc_mark (output_module_);
+ return file_;
}
int
}
const char Pitch::type_p_name_[] = "ly:pitch?";
+
SCM
-Pitch::mark_smob (SCM x)
+Pitch::mark_smob ()
{
- Pitch *p = (Pitch *) SCM_CELL_WORD_1 (x);
- return p->scale_->self_scm ();
+ return scale_->self_scm ();
}
int
}
SCM
-Prob::mark_smob (SCM smob)
+Prob::mark_smob ()
{
- ASSERT_LIVE_IS_ALLOWED (smob);
+ ASSERT_LIVE_IS_ALLOWED (self_scm ());
- Prob *system = (Prob *) SCM_CELL_WORD_1 (smob);
- scm_gc_mark (system->mutable_property_alist_);
- system->derived_mark ();
+ scm_gc_mark (mutable_property_alist_);
+ derived_mark ();
- return system->immutable_property_alist_;
+ return immutable_property_alist_;
}
int
}
SCM
-Scheme_listener::mark_smob (SCM obj)
+Scheme_listener::mark_smob ()
{
- Scheme_listener *me = (Scheme_listener *) SCM_CELL_WORD_1 (obj);
- return me->callback_;
+ return callback_;
}
int
}
SCM
-Scheme_hash_table::mark_smob (SCM s)
+Scheme_hash_table::mark_smob ()
{
- Scheme_hash_table *me = (Scheme_hash_table *) SCM_CELL_WORD_1 (s);
- scm_gc_mark (me->hash_tab_);
+ scm_gc_mark (hash_tab_);
return SCM_EOL;
}
const char Score::type_p_name_[] = "ly:score?";
SCM
-Score::mark_smob (SCM s)
+Score::mark_smob ()
{
- Score *sc = (Score *) SCM_CELL_WORD_1 (s);
+ scm_gc_mark (header_);
+ for (vsize i = defs_.size (); i--;)
+ scm_gc_mark (defs_[i]->self_scm ());
- scm_gc_mark (sc->header_);
- for (vsize i = sc->defs_.size (); i--;)
- scm_gc_mark (sc->defs_[i]->self_scm ());
-
- scm_gc_mark (sc->input_location_);
- return sc->music_;
+ scm_gc_mark (input_location_);
+ return music_;
}
int
const char Source_file::type_p_name_[] = "ly:source-file?";
SCM
-Source_file::mark_smob (SCM smob)
+Source_file::mark_smob ()
{
- Source_file *sc = (Source_file *) SCM_CELL_WORD_1 (smob);
-
- return sc->str_port_;
+ return str_port_;
}
int
}
SCM
-Stencil::mark_smob (SCM smob)
+Stencil::mark_smob ()
{
- Stencil *s = (Stencil *) SCM_CELL_WORD_1 (smob);
- return s->expr_;
+ return expr_;
}
const char Stencil::type_p_name_[] = "ly:stencil?";
}
SCM
-Translator_group::mark_smob (SCM smob)
+Translator_group::mark_smob ()
{
- Translator_group *me = (Translator_group *)SCM_CELL_WORD_1 (smob);
-
- me->derived_mark ();
- scm_gc_mark (me->protected_events_);
- return me->simple_trans_list_;
+ derived_mark ();
+ scm_gc_mark (protected_events_);
+ return simple_trans_list_;
}
SMOBS
*/
SCM
-Translator::mark_smob (SCM sm)
+Translator::mark_smob ()
{
- Translator *me = (Translator *) SCM_CELL_WORD_1 (sm);
- me->derived_mark ();
+ derived_mark ();
return SCM_EOL;
}
{
public:
static int print_smob (SCM, SCM, scm_print_state *);
- static SCM mark_smob (SCM);
+ SCM mark_smob ();
static const char type_p_name_[];
private:
SCM object_;
};
SCM
-Undead::mark_smob (SCM s)
+Undead::mark_smob ()
{
bool saved = parsed_objects_should_be_dead;
parsed_objects_should_be_dead = false;
- scm_gc_mark (Undead::unsmob (s)->object ());
+ scm_gc_mark (object ());
parsed_objects_should_be_dead = saved;
return SCM_UNDEFINED;
}