]> git.donarmstrong.com Git - lilypond.git/commitdiff
Emergency repair work for issue 3200
authorDavid Kastrup <dak@gnu.org>
Sun, 3 Mar 2013 15:17:01 +0000 (16:17 +0100)
committerDavid Kastrup <dak@gnu.org>
Sun, 3 Mar 2013 15:17:01 +0000 (16:17 +0100)
This went boom in the garbage mark phase when
ly:make-unpure-pure-container had been called with a single procedure
argument.

lily/unpure-pure-container.cc

index 09480acde4ba3b7a278a5a08e68a8f2a5c553a9f..05e9c4bcc8ea0d1f1f8db9dee1796f2789f297ba 100644 (file)
@@ -98,18 +98,20 @@ print_unpure_pure_container (SCM s, SCM port, scm_print_state *)
 {
   scm_puts ("#<unpure-pure-container ", port);
   scm_display (unpure_pure_container_unpure_part (s), port);
-  scm_puts (" ", port);
-  scm_display (unpure_pure_container_pure_part (s), port);
+  if (!SCM_UNBNDP (SCM_SMOB_OBJECT_2 (s)))
+    {
+      scm_puts (" ", port);
+      scm_display (unpure_pure_container_pure_part (s), port);
+    }
   scm_puts (" >", port);
   return 1;
 }
 
 SCM
-pure_mark (SCM pure)
+pure_mark (SCM smob)
 {
-  scm_gc_mark (unpure_pure_container_unpure_part (pure));
-  scm_gc_mark (unpure_pure_container_pure_part (pure));
-  return pure;
+  scm_gc_mark (SCM_SMOB_OBJECT (smob));
+  return SCM_SMOB_OBJECT_2 (smob);
 }
 
 // Function signature has two fixed arguments so that dropping two