summaryrefslogtreecommitdiff
path: root/libguile/keywords.c
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2009-12-05 12:38:32 +0100
committerAndy Wingo <wingo@pobox.com>2009-12-05 12:38:43 +0100
commite7efe8e793fa51ea898aea4477939c598b3e9fac (patch)
tree3fb9dfab7a0d398351b5067d91a0235d1910ddbc /libguile/keywords.c
parent838aa0007073dbb9e8c91810299c47054ded52bd (diff)
downloadguile-e7efe8e793fa51ea898aea4477939c598b3e9fac.tar.gz
decruftify scm_sys_protects
* libguile/root.h * libguile/root.c (scm_sys_protects): It used to be that for some reason we'd define a special array of "protected" values. This was a little silly, always, but with the BDW GC it's completely unnecessary. Also many of these variables were unused, and none of them were good API. So remove this array, and either eliminate, make static, or make internal the various values. * libguile/snarf.h: No need to generate calls to scm_permanent_object. * guile-readline/readline.c (scm_init_readline): No need to call scm_permanent_object. * libguile/array-map.c (ramap, rafe): Remove the dubious nullvect optimizations. * libguile/async.c (scm_init_async): No need to init scm_asyncs, it is no more. * libguile/eval.c (scm_init_eval): No need to init scm_listofnull, it is no more. * libguile/gc.c: Make scm_protects a static var. (scm_storage_prehistory): Change the sanity check to use the address of protects. (scm_init_gc_protect_object): No need to clear the scm_sys_protects, as it is no more. * libguile/keywords.c: Make the keyword obarray a static var. * libguile/numbers.c: Make flo0 a static var. * libguile/objprop.c: Make object_whash a static var. * libguile/properties.c: Make properties_whash a static var. * libguile/srcprop.h: * libguile/srcprop.c: Make scm_source_whash a global with internal linkage. * libguile/strings.h: * libguile/strings.c: Make scm_nullstr a global with internal linkage. * libguile/vectors.c (scm_init_vectors): No need to init scm_nullvect, it's unused.
Diffstat (limited to 'libguile/keywords.c')
-rw-r--r--libguile/keywords.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/libguile/keywords.c b/libguile/keywords.c
index c415ccbab..0740801ae 100644
--- a/libguile/keywords.c
+++ b/libguile/keywords.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995,1996,1997,1998,1999,2000,2001, 2003, 2004, 2006, 2008 Free Software Foundation, Inc.
+/* Copyright (C) 1995,1996,1997,1998,1999,2000,2001, 2003, 2004, 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
@@ -37,6 +37,8 @@
+static SCM keyword_obarray;
+
scm_t_bits scm_tc16_keyword;
#define KEYWORDP(X) (SCM_SMOB_PREDICATE (scm_tc16_keyword, (X)))
@@ -71,11 +73,11 @@ SCM_DEFINE (scm_symbol_to_keyword, "symbol->keyword", 1, 0, 0,
SCM_CRITICAL_SECTION_START;
/* njrev: NEWSMOB and hashq_set_x can raise errors */
- keyword = scm_hashq_ref (scm_keyword_obarray, symbol, SCM_BOOL_F);
+ keyword = scm_hashq_ref (keyword_obarray, symbol, SCM_BOOL_F);
if (scm_is_false (keyword))
{
SCM_NEWSMOB (keyword, scm_tc16_keyword, SCM_UNPACK (symbol));
- scm_hashq_set_x (scm_keyword_obarray, symbol, keyword);
+ scm_hashq_set_x (keyword_obarray, symbol, keyword);
}
SCM_CRITICAL_SECTION_END;
return keyword;
@@ -117,7 +119,7 @@ scm_init_keywords ()
scm_tc16_keyword = scm_make_smob_type ("keyword", 0);
scm_set_smob_print (scm_tc16_keyword, keyword_print);
- scm_keyword_obarray = scm_c_make_hash_table (0);
+ keyword_obarray = scm_c_make_hash_table (0);
#include "libguile/keywords.x"
}