diff options
author | Ludovic Courtès <ludo@gnu.org> | 2009-10-20 00:10:18 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2009-10-20 00:10:18 +0200 |
commit | d587c9e8b27219e68f8813fb648fc6913c93be0f (patch) | |
tree | d407902e1f8a1bc25b365631be54f5d656b17662 /libguile/srcprop.h | |
parent | 416c9fb363a2b2f31382c5a488c6e27c31a3b62f (diff) | |
download | guile-d587c9e8b27219e68f8813fb648fc6913c93be0f.tar.gz |
Use proper types for hash/assoc functions in `hashtab.h'.
Partly fixes bug #23681 ("Function declarators with empty parentheses
should not be used").
* libguile/goops.c (scm_wrap_component): Cast `scm_sloppy_assq'.
* libguile/hashtab.c (scm_hash_fn_get_handle): Update to take functions
of type `scm_t_hash_fn' and `scm_t_assoc_fn'. Update callers.
(scm_ihashx): Change to match `scm_t_hash_fn'.
(scm_sloppy_assx): Change to match `scm_t_assoc_fn'.
* libguile/hashtab.h (scm_t_hash_fn, scm_t_assoc_fn): New types.
(scm_t_hashtable)[hash_fn]: Change to `scm_t_hash_fn'.
(scm_i_rehash, scm_hash_fn_get_handle, scm_hash_fn_create_handle_x,
scm_hash_fn_ref, scm_hash_fn_set_x, scm_hash_fn_remove_x): Change to
take `scm_t_hash_fn' and `scm_t_assoc_fn' parameters.
* libguile/srcprop.h (scm_whash_get_handle, scm_whash_create_handle,
scm_whash_lookup): Implement in terms of `scm_hashq_*' instead of
`scm_hash_fn_*'.
* libguile/struct.c (scm_struct_ihashq): Change to match
`scm_t_hash_fn'.
(scm_struct_create_handle): Cast `scm_sloppy_assq'.
* libguile/struct.h (scm_struct_ihashq): Update, make internal.
Diffstat (limited to 'libguile/srcprop.h')
-rw-r--r-- | libguile/srcprop.h | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/libguile/srcprop.h b/libguile/srcprop.h index 89063bed4..ca8818ac4 100644 --- a/libguile/srcprop.h +++ b/libguile/srcprop.h @@ -3,7 +3,7 @@ #ifndef SCM_SRCPROP_H #define SCM_SRCPROP_H -/* Copyright (C) 1995,1996,2000,2001, 2006, 2008 Free Software Foundation, Inc. +/* Copyright (C) 1995,1996,2000,2001, 2006, 2008, 2009 Free Software Foundation, Inc. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public License @@ -35,12 +35,15 @@ #define scm_whash_handle SCM -#define scm_whash_get_handle(whash, key) scm_hash_fn_get_handle (whash, key, scm_ihashq, scm_sloppy_assq, 0) +#define scm_whash_get_handle(whash, key) \ + scm_hashq_get_handle ((whash), (key)) #define SCM_WHASHFOUNDP(h) (scm_is_true (h)) #define SCM_WHASHREF(whash, handle) SCM_CDR (handle) #define SCM_WHASHSET(whash, handle, obj) SCM_SETCDR (handle, obj) -#define scm_whash_create_handle(whash, key) scm_hash_fn_create_handle_x (whash, key, SCM_UNSPECIFIED, scm_ihashq, scm_sloppy_assq, 0) -#define scm_whash_lookup(whash, obj) scm_hash_fn_ref (whash, obj, SCM_BOOL_F, scm_ihashq, scm_sloppy_assq, 0) +#define scm_whash_create_handle(whash, key) \ + scm_hashq_create_handle_x ((whash), (key), SCM_UNSPECIFIED) +#define scm_whash_lookup(whash, obj) \ + scm_hashq_ref ((whash), (obj), SCM_BOOL_F) #define scm_whash_insert(whash, key, obj) \ do { \ register SCM w = (whash); \ |