summaryrefslogtreecommitdiff
path: root/libguile/strings.c
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2017-02-16 10:38:15 +0100
committerAndy Wingo <wingo@pobox.com>2017-02-16 10:38:15 +0100
commitcd3ff33a31c51612f2247bdb15ecbe92d7da1310 (patch)
tree92f595464a9faabf2d2a4d075c359e7905ca8f3b /libguile/strings.c
parent4706d6982457498c60e575a026229e03820381d3 (diff)
downloadguile-cd3ff33a31c51612f2247bdb15ecbe92d7da1310.tar.gz
Cheaper fluid-ref cache
* libguile/cache-internal.h (struct scm_cache_entry): Add needs_flush member. (scm_cache_evict_1): Clear needs_flush on newly evicted entry. (scm_cache_insert): Propagate needs_flush to new entry. * libguile/fluids.c (restore_dynamic_state): Mark all restored entries as needing a flush. (save_dynamic_state): Only cons on "needs_flush" entries to the resulting dynamic state. The result is the same as before but avoiding the refq on the weak table. (fluid_set_x): Propagate needs_flush down to the cache. (fluid_ref): When adding entry to cache, use needs_flush==0. (scm_fluid_set_x, scm_fluid_unset_x, scm_swap_fluid, swap_fluid): Use needs_flush==1.
Diffstat (limited to 'libguile/strings.c')
0 files changed, 0 insertions, 0 deletions