mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-15 08:10:17 +02:00
Turn "all interior pointers" off (slight performance gain).
* libguile/gc.c (scm_storage_prehistory): Set `GC_all_interior_pointers' to 0. Register `scm_tc3_cons' and `scm_tc3_closure' as valid displacements. * libguile/struct.c (scm_alloc_struct): Register additional displacements. git-archimport-id: lcourtes@laas.fr--2005-libre/guile-core--boehm-gc--1.9--patch-48
This commit is contained in:
parent
915b3f9f9a
commit
184327a68d
2 changed files with 15 additions and 0 deletions
|
@ -311,6 +311,12 @@ scm_alloc_struct (int n_words, int n_extra, const char *what)
|
|||
p[scm_struct_i_n_words] = n_words;
|
||||
p[scm_struct_i_flags] = 0;
|
||||
|
||||
/* Since `SCM' objects will record either P or P + SCM_TC3_STRUCT, we need
|
||||
to register them as valid displacements. Fortunately, only a handful of
|
||||
N_EXTRA values are used in core Guile. */
|
||||
GC_REGISTER_DISPLACEMENT ((char *)p - (char *)block);
|
||||
GC_REGISTER_DISPLACEMENT ((char *)p - (char *)block + scm_tc3_struct);
|
||||
|
||||
return p;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue