]> git.donarmstrong.com Git - lilypond.git/commitdiff
Issue 4158: Turn Smob_base<>::print_smob into member functions
authorDavid Kastrup <dak@gnu.org>
Wed, 8 Oct 2014 11:10:33 +0000 (13:10 +0200)
committerDavid Kastrup <dak@gnu.org>
Sat, 11 Oct 2014 10:01:35 +0000 (12:01 +0200)
Using a trampoline here leads to a more natural form of the
print_smob function.

57 files changed:
lily/context-def.cc
lily/context-mod.cc
lily/context.cc
lily/dispatcher.cc
lily/duration.cc
lily/font-metric.cc
lily/grob-array.cc
lily/grob-smob.cc
lily/include/context-def.hh
lily/include/context-mod.hh
lily/include/context.hh
lily/include/dispatcher.hh
lily/include/duration.hh
lily/include/font-metric.hh
lily/include/grob-array.hh
lily/include/grob.hh
lily/include/input.hh
lily/include/lily-lexer.hh
lily/include/lily-parser.hh
lily/include/moment.hh
lily/include/music-function.hh
lily/include/music-iterator.hh
lily/include/music-output.hh
lily/include/output-def.hh
lily/include/pitch.hh
lily/include/prob.hh
lily/include/scheme-listener.hh
lily/include/scm-hash.hh
lily/include/simple-closure.hh
lily/include/skyline-pair.hh
lily/include/smobs.hh
lily/include/smobs.tcc
lily/include/source-file.hh
lily/include/stencil.hh
lily/include/translator-group.hh
lily/include/translator.hh
lily/include/unpure-pure-container.hh
lily/input-smob.cc
lily/lily-lexer.cc
lily/lily-parser.cc
lily/moment.cc
lily/music-function.cc
lily/music-iterator.cc
lily/music-output.cc
lily/output-def.cc
lily/pitch.cc
lily/prob.cc
lily/scheme-listener.cc
lily/scm-hash.cc
lily/simple-closure.cc
lily/skyline-pair.cc
lily/source-file.cc
lily/stencil.cc
lily/translator-group.cc
lily/translator.cc
lily/undead.cc
lily/unpure-pure-container.cc

index 24803a5d9484bdf07de0cc5c79d59fdcc0ff5aec..ec80878b2d9ae1e07a0c86d36192e8c9e1721d0e 100644 (file)
@@ -84,14 +84,12 @@ Context_def::~Context_def ()
 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;
index 16910aa37ed455bb445993af8d7d9f2a1ce64694..f72cb8b404cf9ca2f7e1c9b6fa42a021dd08025c 100644 (file)
@@ -37,12 +37,10 @@ Context_mod::Context_mod (SCM mod_list)
 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;
 }
index 3128f5955ade258df4531381b57a2237e7143052..8397875fdf93dc8a37a042e7c8c09dfd3bf31aa1 100644 (file)
@@ -663,27 +663,25 @@ Context::now_mom () const
 }
 
 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;
index 41f3237651e0217b4d8e7aa12e78e01826c4428f..51162e88b42a7cc8f7caf93c31b76c3e3f1b2423 100644 (file)
@@ -49,12 +49,11 @@ Dispatcher::mark_smob ()
 }
 
 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;
 }
index afc615cdb04b35de7da997354061e556e6fd7473..7c45ef700b19f82f716881ebfeefac89a8400d56 100644 (file)
@@ -140,12 +140,10 @@ const char Duration::type_p_name_[] = "ly:duration?";
 
 
 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;
index 899d80f821166ad95d10f6b0b0e9e11b495c078d..a7f934143e0707b5d077d4f743b2dde3d7740520 100644 (file)
@@ -101,13 +101,12 @@ Font_metric::mark_smob ()
 }
 
 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;
 }
index 908ff6334b638df5eb75515522c169c9775b7687..308f057242be5a10b7d124126cf51a4cfdfcc5ff 100644 (file)
@@ -62,14 +62,12 @@ Grob_array::mark_smob ()
 }
 
 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);
index dc7082e3d5204a4971bb5de05ffe6cc4cb1bd584..3558d4415ab1610915e0f4187e2502939e899343 100644 (file)
@@ -50,12 +50,10 @@ Grob::mark_smob ()
 }
 
 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);
index ba1aad2f2b4cb6f58185acba78ca25d1aefd330a..caf44894ea1f5cbf0fd373c0d5836d3df5b9141c 100644 (file)
@@ -34,7 +34,7 @@
 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:
index 665dc3b64fa0f5de286b3d627cc893bcf0f049fb..72ad0a5e9fda69601b765fcb5f7e56d8150ba783 100644 (file)
@@ -37,7 +37,7 @@
 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_;
index 150996c4e41694ca8ee073ea9a3346aa6d5a61b0..06d0cf10d20888fce617cc8a170d4aa278e94a01 100644 (file)
@@ -32,7 +32,7 @@ class Context : public Smob<Context>
 {
 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:
index 5532d935fc1c4fe292da6101ccb70d47e744adf2..1f5f41243b395be1677f3d526cfd6195f670143d 100644 (file)
@@ -26,7 +26,7 @@
 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 ();
index 1eed866409c99c13d341698cffa498066b5c4e0a..c46d03614b3308b192a4f41d2785da44e40d408a 100644 (file)
@@ -28,7 +28,7 @@
 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);
index e5a2b236be9509ec57c3ddc80dc4c739437bc74d..927d9bb6784dab76e99065273f75b1876725fc2b 100644 (file)
@@ -33,7 +33,7 @@ typedef std::map<FT_UInt, FT_ULong> Index_to_charcode_map;
 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 ();
index 093b2d6bdc2750f1a4e28ef11eff45e9b74af10e..b32d0032a3022f8a396caef2b9baf417c79a7f6d 100644 (file)
@@ -27,7 +27,7 @@
 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:
index 10d8c794ebeb83f2496b47c11850c1d686af7ba0..f5c6ac96e5467d338bfc6c393d12539c30791dbf 100644 (file)
@@ -30,7 +30,7 @@
 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 ();
index 12c3485b117e8c0761a11b29ffda4849188ac99b..43dff1e4b9d5a0f62edf0bfd1d2718562919e3d1 100644 (file)
@@ -33,7 +33,7 @@ class Input : public Simple_smob<Input>
   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;
index eb57de8f6a5b6e16d7d2d3c30383da632e0b7371..a3dbe62dff17d70dc67e33d36a1a8a7c39727840 100644 (file)
@@ -34,7 +34,7 @@ void set_lexer ();
 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 ();
index 0255b46074ebc9a0d34cc55a3f1adb06c4d58609..589562fc14d70dd6dfcb3b203142bc6303d3d886 100644 (file)
@@ -32,7 +32,7 @@
 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 ();
index da3542f964ea39ad9812c56267534f6f66b7847b..63048a3a75dd1cac329ce4bf5c2ccb607bcf8823 100644 (file)
@@ -31,7 +31,7 @@ class Moment : public Simple_smob<Moment>
 {
 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);
index 2356c3ecef92397290228d52eab47c565a1c786d..ef24b63f0ecc938c2624cede153623900ed069d5 100644 (file)
@@ -29,7 +29,7 @@ class Music_function : public Smob2<Music_function>
 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 (); }
 };
index 9ca076c6255c1bc0e2566b69ce8dcef7db59c6e2..01bff5d59d774a4c6a81fc4726f6ff73d80da221 100644 (file)
@@ -61,7 +61,7 @@
 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 ();
index b9f99f2221318f87e5865b3df1c074fb08e8897e..2831d566fcf7fc2fc867d3182f1fe2ab67f4cc81 100644 (file)
@@ -29,7 +29,7 @@
 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 ();
index dc15ba9d0ffc178781377657090d0e127c615446..1673c46d5bb7c494de3b060e1e700c922ac78516 100644 (file)
@@ -49,7 +49,7 @@
 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 ();
index a6e3c3860afb4331c91dd7b1ac1aad0aea50c5f9..ebf39ed7421e718b26a916d1b2a83d4b9abed5fd 100644 (file)
@@ -36,7 +36,7 @@ class Pitch : public Simple_smob<Pitch>
 {
 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:
index 793d390b08bbf0577d5490622c1fa03e9a4c68d0..e90355c5eba65ca04ac80039e8c8c68a6a91adda 100644 (file)
@@ -34,7 +34,7 @@
 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_[];
index 00242083fda0fdbd4585cc1053626ece4d0c0825..03652534f2eec05bb83ee4ca88ead17d2dd237b7 100644 (file)
@@ -29,7 +29,7 @@
 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);
index eea2d1436a21614546b8decf25eeb2357e4b957d..6c390be8f5b352d09ee3e2cd359912b51f713e78 100644 (file)
@@ -46,7 +46,7 @@
 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);
index 3ce4f20d9483a987b2816524020aec49b1dac4d2..f6a2cfdf58f1dc5875fb0f2b6b6277166a4d416d 100644 (file)
@@ -27,7 +27,7 @@ class Simple_closure : public Smob1<Simple_closure>
 {
 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_[];
 };
 
index 26f2542e0a1b67625b3392bc9c8be6b127e3e75d..73b5586029f0e8c675fb425d2201318f8ecf15f6 100644 (file)
@@ -25,7 +25,6 @@
 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_;
index bc4b61d7fd491218d7fe45fe9c4140fc9aa8c373..2d1cbd4d892ac91857118d4fcfda1c887bc88e80 100644 (file)
@@ -179,12 +179,8 @@ private:
   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
index f927d481d422fda55fd75bdaf502786eb5675d7d..0838a791b247d0f0a03202f096fbde7dc625571a 100644 (file)
@@ -35,6 +35,13 @@ Smob_base<Super>::mark_trampoline (SCM arg)
   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)
@@ -75,7 +82,7 @@ Smob_base<Super>::equal_p (SCM, SCM)
 
 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);
@@ -123,7 +130,7 @@ void Smob_base<Super>::init ()
     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)
index 8dfbab6c629f054cdac4cda21bc4864e4b99053d..3c21e1df6eb49a600c0cd2f8ad26398b0a74f61d 100644 (file)
@@ -38,7 +38,7 @@ using namespace std;
 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 ();
index ad686dcfe782c1925c5526431f9e0676537e25de..4f1bceaec462a0c7af11391dd2e4fa4e6ed1d959 100644 (file)
@@ -59,7 +59,6 @@ class Stencil : public Simple_smob<Stencil>
 {
 public:
   SCM mark_smob ();
-  static int print_smob (SCM, SCM, scm_print_state *);
   static const char type_p_name_[];
 private:
   Box dim_;
index 1c907ef25fb49fef77c04843652469945d5eb5b2..40152b320bb135248d1156600f117613515d1cac 100644 (file)
@@ -51,7 +51,7 @@ class Translator_group : public Smob<Translator_group>
 {
 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:
index f7b9677a00d8d4da989c875addfde24d676cb435..885198a7200bda4108826e068e5e08f222b42b02 100644 (file)
@@ -120,7 +120,7 @@ enum Translator_precompute_index
 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 ();
index 8e4733ad16c195ba5d7eeb979a874b11bddbef6e..cff9d6fb3c2206a7bfffabcefbb60a25d3af1cfb 100644 (file)
@@ -39,7 +39,7 @@ public:
       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 */
index 4439955af4e3964dfe9505448b9ecb11eebd30a2..7ed92deab573f8d3fda6e75bf34ac1abe7b143be 100644 (file)
@@ -37,9 +37,9 @@ Input::mark_smob ()
 }
 
 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;
 }
index dac09f1cc19147dcc99d396719f4b909ba4a0202..f71c14fcf2226fecaf946047bf4f4557b66ad73a 100644 (file)
@@ -382,12 +382,10 @@ Lily_lexer::mark_smob ()
 }
 
 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;
 }
index fd1eb489816956d37824aabb2cc07c61d4b4029d..8d0b180e77697e5328651afea94f5662b2642953 100644 (file)
@@ -83,12 +83,11 @@ Lily_parser::mark_smob ()
 }
 
 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);
index b1cf64969f6e9bd8c223b682677c08d90bf57eab..0ad463c5ad1743c958b3158a88a90b3e09f6ea8a 100644 (file)
@@ -48,12 +48,10 @@ const char Moment::type_p_name_[] = "ly:moment?";
 
 
 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);
 
index 79d872c43b256aa1d359410f2ffbc6263812e0d9..6fcb49d2a6e0f27b1235bd35f7b6a519c8cc6b15 100644 (file)
@@ -23,10 +23,10 @@ const char Music_function::type_p_name_[] = "ly:music-function?";
 
 /* 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.  */
index 293a91ed4bdd83be22d4768e06f1d669a2440023..372a33ba1c8f7747b037b01c7b052d135f9e5012 100644 (file)
@@ -214,12 +214,11 @@ Music_iterator::mark_smob ()
 }
 
 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;
 }
index 18eb372020f3bf381fe358baeaa749f6dceec4d0..64d8c83983cb792fb938094c11ae9b4ea6f808bc 100644 (file)
@@ -49,11 +49,10 @@ Music_output::mark_smob ()
 }
 
 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;
index eeb5a7a84c0d7cf160f2adf2113e3c95ea983d64..efbe2b937a90cda559d8c5ea904b41923e8f5f47 100644 (file)
@@ -94,11 +94,10 @@ find_context_def (Output_def const *m, SCM name)
 }
 
 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;
 }
index 08e6556cf6962be729c3bb3e24e1775c3b44875c..94c46a2cdb76280da2b1bba33c14730d387a688d 100644 (file)
@@ -227,11 +227,10 @@ Pitch::mark_smob ()
 }
 
 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;
 }
index 8829529b7ae77d29893e79ac4c8331f67e58126d..918c4d8d70546afb1987a96f42dc598d70d3d2f9 100644 (file)
@@ -124,16 +124,15 @@ Prob::mark_smob ()
 }
 
 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;
index 6e567b0aebc4375b4548d68e93538afb54dae6e5..5db5125caa994eb12458a6364cc06852d6b810dd 100644 (file)
@@ -41,11 +41,10 @@ Scheme_listener::mark_smob ()
 }
 
 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;
 }
index d946f2964ad511fdf596076bab71910d73cca2d1..91958477eb45636ea81209ed9835eca99fbb4b92 100644 (file)
@@ -78,12 +78,10 @@ Scheme_hash_table::mark_smob ()
 }
 
 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;
 }
index 74845f58599f2965a110657b9e02296f38b29a11..de8eb22af193204130d529104abb9169143f45e3 100644 (file)
@@ -114,10 +114,10 @@ LY_DEFINE (ly_eval_simple_closure, "ly:eval-simple-closure",
 }
 
 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;
 }
index f95a5e7b74788fa6594881739843dc18369ca3f8..205fd889d5f879391a1f877b4fe04ab04ef5796a 100644 (file)
@@ -130,16 +130,6 @@ Skyline_pair::operator [] (Direction d) const
 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)
index 849a8f7e6fc83a11e65fbdc598c1edb0cf6371cb..fe8635a49559d81fe68a3c4be20d745658b83000 100644 (file)
@@ -368,12 +368,10 @@ Source_file::mark_smob ()
 }
 
 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);
index 1e5e0ad4cc845aae82c488b510c2494c2db0ce84..7be0b5f8af63b1562984da11a5fea9602552aa6c 100644 (file)
@@ -38,14 +38,6 @@ Stencil::Stencil (Box b, SCM func)
   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 ()
 {
index 111b61f138b651df4e90fd09655d10b73bf46b99..2f6615f17dda6bc7ab08302f98736206b76cf8e8 100644 (file)
@@ -347,12 +347,11 @@ Translator_group::~Translator_group ()
 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;
 }
index 4b73b7cd5425b29080abfca51163e6cbb786c4fb..b2ba4d8768129acf73fa6f6241a7e1550f8fa965 100644 (file)
@@ -231,11 +231,10 @@ Translator::derived_mark () const
 }
 
 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;
 }
index 9105a995eac1a07b43eb29d114999d2263046e90..d6e3d550d1b47a9ca9a410024252c28c7b0e3dd2 100644 (file)
@@ -22,7 +22,7 @@
 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:
@@ -43,12 +43,10 @@ Undead::mark_smob ()
 }
 
 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;
 }
index 4c07e31fd268336a7544651abf8aec838f60a4a7..761d14b7b89e77c2ed96fb5256094d9db3cf1b66 100644 (file)
@@ -74,15 +74,14 @@ LY_DEFINE (ly_unpure_pure_container_pure_part, "ly:unpure-pure-container-pure-pa
 }
 
 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;