decruftify scm_sys_protects
authorAndy Wingo <wingo@pobox.com>
Sat, 5 Dec 2009 11:38:32 +0000 (12:38 +0100)
committerAndy Wingo <wingo@pobox.com>
Sat, 5 Dec 2009 11:38:43 +0000 (12:38 +0100)
commite7efe8e793fa51ea898aea4477939c598b3e9fac
tree3fb9dfab7a0d398351b5067d91a0235d1910ddbc
parent838aa0007073dbb9e8c91810299c47054ded52bd
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.
17 files changed:
guile-readline/readline.c
libguile/array-map.c
libguile/async.c
libguile/eval.c
libguile/gc.c
libguile/keywords.c
libguile/numbers.c
libguile/objprop.c
libguile/properties.c
libguile/root.c
libguile/root.h
libguile/snarf.h
libguile/srcprop.c
libguile/srcprop.h
libguile/strings.c
libguile/strings.h
libguile/vectors.c