mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-04-30 03:40:34 +02:00
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.
This commit is contained in:
parent
416c9fb363
commit
d587c9e8b2
6 changed files with 116 additions and 38 deletions
|
@ -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); \
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue