]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/grob-interface-scheme.cc
Release: bump Welcome versions.
[lilypond.git] / lily / grob-interface-scheme.cc
index 3e68d78f0de7d38e2a5aa2fda6eff2c79218f3c0..11a5576169761bf4c4c436d7deb92e3b96bce9bc 100644 (file)
@@ -1,7 +1,7 @@
 /*
   This file is part of LilyPond, the GNU music typesetter.
 
-  Copyright (C) 2005--2010 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  Copyright (C) 2005--2015 Han-Wen Nienhuys <hanwen@xs4all.nl>
 
   LilyPond is free software: you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
 
 #include "lily-guile.hh"
 #include "std-string.hh"
+#include "protected-scm.hh"
 
-static SCM all_ifaces;
+static Protected_scm all_ifaces;
 
 void
 internal_add_interface (SCM a, SCM b, SCM c)
 {
-  if (!all_ifaces)
-    {
-      SCM tab = scm_c_make_hash_table (59);
-      all_ifaces = tab;
-      scm_permanent_object (tab);
-    }
-  
-  SCM entry = scm_list_n (a, b, c, SCM_UNDEFINED);
+  if (!all_ifaces.is_bound ())
+    all_ifaces = scm_c_make_hash_table (59);
+
+  SCM entry = scm_list_3 (a, b, c);
 
   scm_hashq_set_x (all_ifaces, a, entry);
 }
 
 LY_DEFINE (ly_add_interface, "ly:add-interface",
-          3, 0, 0, (SCM iface, SCM desc, SCM props),
-          "Add a new grob interface.  @var{iface} is the"
-          " interface name, @var{desc} is the interface"
-          " description, and @var{props} is the list of"
-          " user-settable properties for the interface.")
+           3, 0, 0, (SCM iface, SCM desc, SCM props),
+           "Add a new grob interface.  @var{iface} is the"
+           " interface name, @var{desc} is the interface"
+           " description, and @var{props} is the list of"
+           " user-settable properties for the interface.")
 {
   LY_ASSERT_TYPE (ly_is_symbol, iface, 1);
   LY_ASSERT_TYPE (scm_is_string, desc, 2);
@@ -54,8 +51,8 @@ LY_DEFINE (ly_add_interface, "ly:add-interface",
 }
 
 LY_DEFINE (ly_all_grob_interfaces, "ly:all-grob-interfaces",
-          0, 0, 0, (),
-          "Return the hash table with all grob interface descriptions.")
+           0, 0, 0, (),
+           "Return the hash table with all grob interface descriptions.")
 {
   return all_ifaces;
 }