]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/unpure-pure-container.cc
issue 4491: replace BUILD_DIR with LILYPOND_BUILD_DIR
[lilypond.git] / lily / unpure-pure-container.cc
index 3a2ab1e52de6ec64063b2c022a681cd3be900d03..2dff6eea992a402c7beaeaf567f6611ef41164c9 100644 (file)
@@ -19,8 +19,6 @@
 */
 #include "unpure-pure-container.hh"
 
-#include "grob.hh"
-
 // Reroutes a call to the contained function after dropping last two
 // arguments.  Used for applying an "unpure" function in a "pure"
 // context.
@@ -31,9 +29,8 @@ public:
   SCM call (SCM arg1, SCM arg2, SCM rest)
   {
     return scm_apply_0 (scm1 (),
-                        scm_call_2 (ly_lily_module_constant ("drop-right"),
-                                    scm_cons2 (arg1, arg2, rest),
-                                    scm_from_int (2)));
+                        scm_list_head (scm_cons2 (arg1, arg2, rest),
+                                       scm_length (rest)));
   }
 };
 
@@ -63,7 +60,7 @@ LY_DEFINE (ly_unpure_pure_container_unpure_part, "ly:unpure-pure-container-unpur
            "Return the unpure part of @var{pc}.")
 {
   LY_ASSERT_SMOB (Unpure_pure_container, pc, 1);
-  return Unpure_pure_container::unsmob (pc)->unpure_part ();
+  return unsmob<Unpure_pure_container> (pc)->unpure_part ();
 }
 
 LY_DEFINE (ly_unpure_pure_container_pure_part, "ly:unpure-pure-container-pure-part",
@@ -71,11 +68,11 @@ LY_DEFINE (ly_unpure_pure_container_pure_part, "ly:unpure-pure-container-pure-pa
            "Return the pure part of @var{pc}.")
 {
   LY_ASSERT_SMOB (Unpure_pure_container, pc, 1);
-  return Unpure_pure_container::unsmob (pc)->pure_part ();
+  return unsmob<Unpure_pure_container> (pc)->pure_part ();
 }
 
 int
-Unpure_pure_container::print_smob (SCM port, scm_print_state *)
+Unpure_pure_container::print_smob (SCM port, scm_print_state *) const
 {
   scm_puts ("#<unpure-pure-container ", port);
   scm_display (unpure_part (), port);