/* -*-c-*-
*
- * $Id: sym.h,v 1.8 1999/08/02 14:45:48 mdw Exp $
+ * $Id: sym.h,v 1.9 1999/08/02 16:53:48 mdw Exp $
*
* Symbol table management
*
/*----- Revision history --------------------------------------------------*
*
* $Log: sym.h,v $
+ * Revision 1.9 1999/08/02 16:53:48 mdw
+ * Improve type safety for sym_iter objects.
+ *
* Revision 1.8 1999/08/02 14:45:48 mdw
* Break low-level hashtable code out from sym.
*
/* --- An iterator block --- */
-typedef hash_iter sym_iter;
+typedef struct { hash_iter i; } sym_iter;
/*----- External functions ------------------------------------------------*/
* iterate through a symbol table.
*/
-#define SYM_MKITER(i, t) HASH_MKITER((i), &(t)->t)
+#define SYM_MKITER(i_, t_) HASH_MKITER(&(i_)->i, &(t_)->t)
extern void sym_mkiter(sym_iter */*i*/, sym_table */*t*/);
* returned in any particular order.
*/
-#define SYM_NEXT(i, p) do { \
+#define SYM_NEXT(i_, p) do { \
hash_base *_q; \
- HASH_NEXT((i), _q); \
+ HASH_NEXT(&(i_)->i, _q); \
(p) = (void *)_q; \
} while (0)