/*
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 : public Smob<Scheme_hash_table>
+class Scheme_hash_table : public Smob1<Scheme_hash_table>
{
public:
- static int print_smob (SCM, SCM, scm_print_state *);
- static SCM mark_smob (SCM);
- virtual ~Scheme_hash_table ();
+ 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);
+ SCM &hash_tab () const { return scm1 (); }
};
#endif /* SCM_HASH_HH */