/*
This file is part of LilyPond, the GNU music typesetter.
- Copyright (C) 1999--2014 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
#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 */
-