]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/scm-hash.cc
release: 1.4.8
[lilypond.git] / lily / scm-hash.cc
index cd8841a5ea9f9bb4ae480a2822d88596ad3473f1..09750b51ace1107df9f900dc8a8b317c0bcbfb73 100644 (file)
@@ -25,7 +25,7 @@ Scheme_hash_table::Scheme_hash_table (Scheme_hash_table const &src)
 }
 
 void
-Scheme_hash_table::operator =(Scheme_hash_table const & src)
+Scheme_hash_table::operator = (Scheme_hash_table const & src)
 {
   Scm_stl_map::operator = (src);
        
@@ -39,9 +39,9 @@ Scheme_hash_table::mark_smob (SCM s)
     can't typecheck naively, since GC bit lives in CAR of S
    */
   
-  Scheme_hash_table *me = (Scheme_hash_table*) SCM_CELL_WORD_1(s);
+  Scheme_hash_table *me = (Scheme_hash_table*) SCM_CELL_WORD_1 (s);
 
-  for (Scm_stl_map::const_iterator i= me->begin (); i != me->end(); i++)
+  for (Scm_stl_map::const_iterator i= me->begin (); i != me->end (); i++)
     {
       scm_gc_mark ((*i).first);
       scm_gc_mark ((*i).second);
@@ -54,10 +54,10 @@ Scheme_hash_table::print_smob (SCM s, SCM p, scm_print_state*)
 {
   assert (unsmob (s));
   char str[1000];
-  sprintf (str, "#<Scheme_hash_table 0x%0x ", s);
+  sprintf (str, "#<Scheme_hash_table 0x%0x ", SCM_UNPACK (s));
   scm_puts (str, p);      
-  Scheme_hash_table *me = unsmob(s);
-  for (Scm_stl_map::const_iterator i = me->begin (); i != me->end(); i++)
+  Scheme_hash_table *me = unsmob (s);
+  for (Scm_stl_map::const_iterator i = me->begin (); i != me->end (); i++)
     {
       scm_display ((*i).first, p);
       scm_puts (" = ",p);      
@@ -88,18 +88,23 @@ Scheme_hash_table::elem_b (SCM k) const
 void
 Scheme_hash_table::set (SCM k, SCM v)
 {
 (*this)[k] = v;
+ (*this)[k] = v;
 }
 
 // UGH. 
 SCM
 Scheme_hash_table::get (SCM k)const
 {
-  return (*(Scheme_hash_table*)this)[k]; 
+  return (* (Scheme_hash_table*)this)[k]; 
 }
 
+void
+Scheme_hash_table::remove (SCM k)
+{
+  Scm_stl_map::erase (k);
+}
 
-Scheme_hash_table::~Scheme_hash_table)
+Scheme_hash_table::~Scheme_hash_table ()
 {
 }
 
@@ -107,15 +112,15 @@ SCM
 Scheme_hash_table::to_alist () const
 {
   SCM l = SCM_EOL;
-  for (Scm_stl_map ::const_iterator i = begin (); i != end(); i++)
+  for (Scm_stl_map ::const_iterator i = begin (); i != end (); i++)
     l = gh_cons (gh_cons ((*i).first, (*i).second), l);
   return l;  
 }
 
 
 
-IMPLEMENT_UNSMOB(Scheme_hash_table,scheme_hash);
-IMPLEMENT_SMOBS(Scheme_hash_table);
-IMPLEMENT_DEFAULT_EQUAL_P(Scheme_hash_table);
+IMPLEMENT_UNSMOB (Scheme_hash_table,scheme_hash);
+IMPLEMENT_SMOBS (Scheme_hash_table);
+IMPLEMENT_DEFAULT_EQUAL_P (Scheme_hash_table);