From 0b5f3f34c220329c3fadcf75d881fab168ae35e7 Mon Sep 17 00:00:00 2001 From: "Greg J. Badros" Date: Tue, 4 Jan 2000 22:23:42 +0000 Subject: [PATCH] * options.c, objects.c, keywords.c, gc.c: Some redundant SCM_NIMP removals from Dirk Hermann. * alist.c: Rename formals to match the parameter names in the documentation, updates to documentation. Thanks Dirk Hermann! --- libguile/alist.c | 70 ++++++++++++++++++++++----------------------- libguile/gc.c | 12 ++------ libguile/keywords.c | 3 +- libguile/objects.c | 3 +- libguile/options.c | 3 +- 5 files changed, 41 insertions(+), 50 deletions(-) diff --git a/libguile/alist.c b/libguile/alist.c index 1e915410d..88595323b 100644 --- a/libguile/alist.c +++ b/libguile/alist.c @@ -54,38 +54,40 @@ GUILE_PROC(scm_acons, "acons", 3, 0, 0, - (SCM w, SCM x, SCM y), + (SCM key, SCM value, SCM alist), "Adds a new key-value pair to @var{alist}. A new pair is created whose car is @var{key} and whose cdr is @var{value}, and the pair is consed onto @var{alist}, and the new list is returned. This function is @emph{not} destructive; @var{alist} is not modified.") #define FUNC_NAME s_scm_acons { - register SCM z; - SCM_NEWCELL (z); - SCM_SETCAR (z, w); - SCM_SETCDR (z, x); - x = z; - SCM_NEWCELL (z); - SCM_SETCAR (z, x); - SCM_SETCDR (z, y); - return z; + SCM pair; + SCM head; + + SCM_NEWCELL (pair); + SCM_SETCAR (pair, key); + SCM_SETCDR (pair, value); + + SCM_NEWCELL (head); + SCM_SETCAR (head, pair); + SCM_SETCDR (head, alist); + + return head; } #undef FUNC_NAME GUILE_PROC (scm_sloppy_assq, "sloppy-assq", 2, 0, 0, - (SCM x, SCM alist), + (SCM key, SCM alist), "Behaves like @code{assq} but does not do any error checking. Recommended only for use in Guile internals.") #define FUNC_NAME s_scm_sloppy_assq { - for (; SCM_CONSP (alist); alist = SCM_CDR (alist)) { SCM tmp = SCM_CAR(alist); - if (SCM_CONSP (tmp) && (SCM_CAR (tmp)==x)) + if (SCM_CONSP (tmp) && (SCM_CAR (tmp)==key)) return tmp; } return SCM_BOOL_F; @@ -95,7 +97,7 @@ Recommended only for use in Guile internals.") GUILE_PROC (scm_sloppy_assv, "sloppy-assv", 2, 0, 0, - (SCM x, SCM alist), + (SCM key, SCM alist), "Behaves like @code{assv} but does not do any error checking. Recommended only for use in Guile internals.") #define FUNC_NAME s_scm_sloppy_assv @@ -103,9 +105,8 @@ Recommended only for use in Guile internals.") for (; SCM_CONSP (alist); alist = SCM_CDR (alist)) { SCM tmp = SCM_CAR(alist); - if (SCM_NIMP (tmp) - && SCM_CONSP (tmp) - && SCM_NFALSEP (scm_eqv_p (SCM_CAR (tmp), x))) + if (SCM_CONSP (tmp) + && SCM_NFALSEP (scm_eqv_p (SCM_CAR (tmp), key))) return tmp; } return SCM_BOOL_F; @@ -114,7 +115,7 @@ Recommended only for use in Guile internals.") GUILE_PROC (scm_sloppy_assoc, "sloppy-assoc", 2, 0, 0, - (SCM x, SCM alist), + (SCM key, SCM alist), "Behaves like @code{assoc} but does not do any error checking. Recommended only for use in Guile internals.") #define FUNC_NAME s_scm_sloppy_assoc @@ -122,9 +123,8 @@ Recommended only for use in Guile internals.") for (; SCM_CONSP (alist); alist = SCM_CDR (alist)) { SCM tmp = SCM_CAR(alist); - if (SCM_NIMP (tmp) - && SCM_CONSP (tmp) - && SCM_NFALSEP (scm_equal_p (SCM_CAR (tmp), x))) + if (SCM_CONSP (tmp) + && SCM_NFALSEP (scm_equal_p (SCM_CAR (tmp), key))) return tmp; } return SCM_BOOL_F; @@ -135,7 +135,7 @@ Recommended only for use in Guile internals.") GUILE_PROC(scm_assq, "assq", 2, 0, 0, - (SCM x, SCM alist), + (SCM key, SCM alist), "@deffnx primitive assv key alist @deffnx primitive assoc key alist Fetches the entry in @var{alist} that is associated with @var{key}. To @@ -150,7 +150,7 @@ return the entire alist entry found (i.e. both the key and the value).") SCM tmp; for(;SCM_NIMP(alist);alist = SCM_CDR(alist)) { SCM_VALIDATE_ALISTCELL_COPYSCM(2,alist,tmp); - if (SCM_CAR(tmp)==x) return tmp; + if (SCM_CAR(tmp)==key) return tmp; } SCM_VALIDATE_NULL(2,alist); return SCM_BOOL_F; @@ -159,8 +159,8 @@ return the entire alist entry found (i.e. both the key and the value).") GUILE_PROC(scm_assv, "assv", 2, 0, 0, - (SCM x, SCM alist), -"") + (SCM key, SCM alist), +"Behaves like @code{assq} but uses @code{eqv?} for key comparison.") #define FUNC_NAME s_scm_assv { SCM tmp; @@ -168,7 +168,7 @@ GUILE_PROC(scm_assv, "assv", 2, 0, 0, SCM_ASRTGO(SCM_CONSP(alist), badlst); tmp = SCM_CAR(alist); SCM_ASRTGO(SCM_CONSP(tmp), badlst); - if SCM_NFALSEP(scm_eqv_p(SCM_CAR(tmp), x)) return tmp; + if SCM_NFALSEP(scm_eqv_p(SCM_CAR(tmp), key)) return tmp; } # ifndef SCM_RECKLESS if (!(SCM_NULLP(alist))) @@ -180,14 +180,14 @@ GUILE_PROC(scm_assv, "assv", 2, 0, 0, GUILE_PROC(scm_assoc, "assoc", 2, 0, 0, - (SCM x, SCM alist), -"See @code{assq}.") + (SCM key, SCM alist), +"Behaves like @code{assq} but uses @code{equal?} for key comparison.") #define FUNC_NAME s_scm_assoc { SCM tmp; for(;SCM_NIMP(alist);alist = SCM_CDR(alist)) { SCM_VALIDATE_ALISTCELL_COPYSCM(2,alist,tmp); - if SCM_NFALSEP(scm_equal_p(SCM_CAR(tmp), x)) return tmp; + if SCM_NFALSEP(scm_equal_p(SCM_CAR(tmp), key)) return tmp; } SCM_VALIDATE_NULL(2,alist); return SCM_BOOL_F; @@ -227,7 +227,7 @@ where @var{associator} is one of @code{assq}, @code{assv} or @code{assoc}.") GUILE_PROC (scm_assv_ref, "assv-ref", 2, 0, 0, (SCM alist, SCM key), -"See @code{assq-ref}.") +"Behaves like @code{assq-ref} but uses @code{eqv?} for key comparison.") #define FUNC_NAME s_scm_assv_ref { SCM handle; @@ -244,7 +244,7 @@ GUILE_PROC (scm_assv_ref, "assv-ref", 2, 0, 0, GUILE_PROC (scm_assoc_ref, "assoc-ref", 2, 0, 0, (SCM alist, SCM key), -"See @code{assq-ref}.") +"Behaves like @code{assq-ref} but uses @code{equal?} for key comparison.") #define FUNC_NAME s_scm_assoc_ref { SCM handle; @@ -292,7 +292,7 @@ association list.") GUILE_PROC (scm_assv_set_x, "assv-set!", 3, 0, 0, (SCM alist, SCM key, SCM val), -"See @code{assq-set!}.") +"Behaves like @code{assq-set!} but uses @code{eqv?} for key comparison.") #define FUNC_NAME s_scm_assv_set_x { SCM handle; @@ -310,7 +310,7 @@ GUILE_PROC (scm_assv_set_x, "assv-set!", 3, 0, 0, GUILE_PROC (scm_assoc_set_x, "assoc-set!", 3, 0, 0, (SCM alist, SCM key, SCM val), -"See @code{assq-set!}.") +"Behaves like @code{assq-set!} but uses @code{equal?} for key comparison.") #define FUNC_NAME s_scm_assoc_set_x { SCM handle; @@ -352,7 +352,7 @@ the resulting alist.") GUILE_PROC (scm_assv_remove_x, "assv-remove!", 2, 0, 0, (SCM alist, SCM key), -"See @code{assq-remove!}.") +"Behaves like @code{assq-remove!} but uses @code{eqv?} for key comparison.") #define FUNC_NAME s_scm_assv_remove_x { SCM handle; @@ -370,7 +370,7 @@ GUILE_PROC (scm_assv_remove_x, "assv-remove!", 2, 0, 0, GUILE_PROC (scm_assoc_remove_x, "assoc-remove!", 2, 0, 0, (SCM alist, SCM key), -"See @code{assq-remove!}.") +"Behaves like @code{assq-remove!} but uses @code{equal?} for key comparison.") #define FUNC_NAME s_scm_assoc_remove_x { SCM handle; diff --git a/libguile/gc.c b/libguile/gc.c index f96b2360a..ef294f701 100644 --- a/libguile/gc.c +++ b/libguile/gc.c @@ -805,10 +805,8 @@ gc_mark_nimp: /* mark everything on the alist except the keys or * values, according to weak_values and weak_keys. */ - while ( SCM_NIMP (alist) - && SCM_CONSP (alist) + while ( SCM_CONSP (alist) && !SCM_GCMARKP (alist) - && SCM_NIMP (SCM_CAR (alist)) && SCM_CONSP (SCM_CAR (alist))) { SCM kvpair; @@ -1063,10 +1061,8 @@ scm_mark_weak_vector_spines () SCM alist; alist = ptr[j]; - while ( SCM_NIMP (alist) - && SCM_CONSP (alist) + while ( SCM_CONSP (alist) && !SCM_GCMARKP (alist) - && SCM_NIMP (SCM_CAR (alist)) && SCM_CONSP (SCM_CAR (alist))) { SCM_SETGCMARK (alist); @@ -1404,9 +1400,7 @@ scm_gc_sweep () fixup = ptr + j; alist = *fixup; - while (SCM_NIMP (alist) - && SCM_CONSP (alist) - && SCM_NIMP (SCM_CAR (alist)) + while ( SCM_CONSP (alist) && SCM_CONSP (SCM_CAR (alist))) { SCM key; diff --git a/libguile/keywords.c b/libguile/keywords.c index bd4a0247f..d76ed5738 100644 --- a/libguile/keywords.c +++ b/libguile/keywords.c @@ -75,8 +75,7 @@ GUILE_PROC (scm_make_keyword_from_dash_symbol, "make-keyword-from-dash-symbol", { SCM vcell; - SCM_ASSERT (SCM_NIMP (symbol) - && SCM_SYMBOLP (symbol) + SCM_ASSERT (SCM_SYMBOLP (symbol) && ('-' == SCM_CHARS(symbol)[0]), symbol, SCM_ARG1, FUNC_NAME); diff --git a/libguile/objects.c b/libguile/objects.c index cc8b6e57c..358b3a3e6 100644 --- a/libguile/objects.c +++ b/libguile/objects.c @@ -373,8 +373,7 @@ GUILE_PROC (scm_operator_p, "operator?", 1, 0, 0, "") #define FUNC_NAME s_scm_operator_p { - return SCM_BOOL(SCM_NIMP (obj) - && SCM_STRUCTP (obj) + return SCM_BOOL(SCM_STRUCTP (obj) && SCM_I_OPERATORP (obj) && !SCM_I_ENTITYP (obj)); } diff --git a/libguile/options.c b/libguile/options.c index 64143cb4b..750bd9526 100644 --- a/libguile/options.c +++ b/libguile/options.c @@ -177,8 +177,7 @@ scm_options (SCM arg, scm_option options[], int n, const char *s) goto cont; case SCM_OPTION_INTEGER: new_mode = SCM_CDR (new_mode); - SCM_ASSERT (SCM_NIMP (new_mode) - && SCM_CONSP (new_mode) + SCM_ASSERT ( SCM_CONSP (new_mode) && SCM_INUMP (SCM_CAR (new_mode)), new_mode, SCM_ARG1,