*/
/*
- Copyright (C) 2000-2003 Kern Sibbald and John Walker
+ Copyright (C) 2003-2005 Kern Sibbald
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
*/
/* ========================================================================
- *
+ *
* Hash table class -- htable
*
*/
* Loop var through each member of table
*/
#define foreach_htable(var, tbl) \
- for(((void *)(var))=(tbl)->first(); \
+ for((*((void **)&(var))=(void *)((tbl)->first())); \
(var); \
- ((void *)(var))=(tbl)->next())
+ (*((void **)&(var))=(void *)((tbl)->next())))
struct hlink {
void *next; /* next hash item */
void grow_table(); /* grow the table */
public:
htable(void *item, void *link, int tsize = 31);
+ ~htable() { destroy(); }
void init(void *item, void *link, int tsize = 31);
bool insert(char *key, void *item);
void *lookup(char *key);