]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/include/scm-hash.hh
Imported Upstream version 2.19.45
[lilypond.git] / lily / include / scm-hash.hh
index c81225913fd3359e29eaa2389e038914b4193f0c..3453904f7152cf3c8cfe60b652fca9892803637a 100644 (file)
@@ -1,7 +1,7 @@
 /*
   This file is part of LilyPond, the GNU music typesetter.
 
-  Copyright (C) 1999--2012 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  Copyright (C) 1999--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
@@ -20,7 +20,7 @@
 #ifndef SCM_HASH_HH
 #define SCM_HASH_HH
 
-#include "smobs.hh"
+#include "small-smobs.hh"
 
 /*
   hash table.
   scm_gc_unprotect_object (tab->self_scm_);
 */
 
-class Scheme_hash_table
+class Scheme_hash_table : public Smob1<Scheme_hash_table>
 {
 public:
+  int print_smob (SCM, scm_print_state *) const;
   bool try_retrieve (SCM key, SCM *val);
   bool contains (SCM key) const;
   void set (SCM k, SCM v);
   SCM get (SCM k) const;
   void remove (SCM k);
-  Scheme_hash_table ();
   void operator = (Scheme_hash_table const &);
-  Scheme_hash_table (Scheme_hash_table const &);
   SCM to_alist () const;
+  static SCM make_smob ();
 
 private:
-  SCM hash_tab_;
-  void copy (Scheme_hash_table const &src);
-  DECLARE_SMOBS (Scheme_hash_table);
+  SCM &hash_tab () const { return scm1 (); }
 };
 
 #endif /* SCM_HASH_HH */
-