X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Finclude%2Fscm-hash.hh;h=1182c503f9af5791e1fddf3301b049e5c09be680;hb=9e781b7dc83b60a543ce218aa1a5f139f74c760f;hp=f3134127faca6bf5f4b86afa608b862439248105;hpb=e24df7c27635dc996c466295eacf2981bddccaf7;p=lilypond.git diff --git a/lily/include/scm-hash.hh b/lily/include/scm-hash.hh index f3134127fa..1182c503f9 100644 --- a/lily/include/scm-hash.hh +++ b/lily/include/scm-hash.hh @@ -1,66 +1,66 @@ -/* - scm-hash.hh -- declare Scheme hasher. - - source file of the GNU LilyPond music typesetter - - (c) 1999--2005 Han-Wen Nienhuys - - */ +/* + This file is part of LilyPond, the GNU music typesetter. -#ifndef SCM_HASH_HH -#define SCM_HASH_HH + Copyright (C) 1999--2014 Han-Wen Nienhuys + LilyPond is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. -#include "smobs.hh" + LilyPond is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + You should have received a copy of the GNU General Public License + along with LilyPond. If not, see . +*/ + +#ifndef SCM_HASH_HH +#define SCM_HASH_HH -/** - auto resizing hash table. +#include "smobs.hh" - 1. ALWAYS USE THIS AS VIA A POINTER, i.e. +/* + hash table. - class Foo { - Scheme_hash_table * tab; - }; + 1. ALWAYS USE THIS AS VIA A POINTER, i.e. - and NOT + class Foo { + Scheme_hash_table * tab; + }; - class Foo { - Scheme_hash_table tab; - } + and NOT + class Foo { + Scheme_hash_table tab; + } - 2. UPON DESTRUCTION, DO - scm_gc_unprotect_object (tab->self_scm_); + 2. UPON DESTRUCTION, DO - */ + scm_gc_unprotect_object (tab->self_scm_); +*/ class Scheme_hash_table -{ +{ public: bool try_retrieve (SCM key, SCM *val); bool contains (SCM key) const; - - /** - WARNING: putting something in assumes responsibility for cleaning - up. */ void set (SCM k, SCM v); - SCM get (SCM k) const; + SCM get (SCM k) const; void remove (SCM k); Scheme_hash_table (); - void operator = (Scheme_hash_table const &); + void operator = (Scheme_hash_table const &); Scheme_hash_table (Scheme_hash_table const &); - SCM to_alist () const; private: SCM hash_tab_; - unsigned elt_count_; - - DECLARE_SMOBS (Scheme_hash_table, foo); + void copy (Scheme_hash_table const &src); + DECLARE_SMOBS (Scheme_hash_table); }; - #endif /* SCM_HASH_HH */