summaryrefslogtreecommitdiff
path: root/libguile/goops.c
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2017-09-07 16:55:30 +0200
committerAndy Wingo <wingo@pobox.com>2017-09-14 09:44:33 +0200
commit7e91ff651b3c9f7c27f2be146ea611bab65809a8 (patch)
tree09e2c37c935bf20f3883721d55708529b7e9eebd /libguile/goops.c
parent48989599016c218da68899aee2af8264df98e34c (diff)
downloadguile-7e91ff651b3c9f7c27f2be146ea611bab65809a8.tar.gz
Remove indirection in structs
* libguile/gc.c (scm_storage_prehistory): Register struct displacement here. * libguile/goops.c (scm_sys_modify_instance): Fix the format of a comment. * libguile/modules.c (scm_post_boot_init_modules): Update for new format of struct vtable references. * libguile/struct.c (scm_i_alloc_struct): Update to include slots directly, instead of being indirected by an embedded pointer. (scm_c_make_structv, scm_allocate_struct, scm_i_make_vtable_vtable): Adapt to pass vtable bits as argument to scm_i_alloc_struct, not vtable data bits. (scm_init_struct): Remove two-word displacement from libgc. * libguile/struct.h: Update comment. (SCM_STRUCT_SLOTS, SCM_STRUCT_DATA): Update definitions. (SCM_STRUCT_VTABLE_DATA, SCM_STRUCT_VTABLE_SLOTS): Remove. (SCM_STRUCT_VTABLE, SCM_STRUCT_LAYOUT, SCM_STRUCT_PRINTER) (SCM_STRUCT_FINALIZER, SCM_STRUCT_VTABLE_FLAGS) (SCM_STRUCT_VTABLE_FLAG_IS_SET): Simplify definitions. * module/system/base/types.scm (cell->object, address->inferior-struct): Adapt to struct representation change.
Diffstat (limited to 'libguile/goops.c')
-rw-r--r--libguile/goops.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/libguile/goops.c b/libguile/goops.c
index 12a3687a4..7e7a26553 100644
--- a/libguile/goops.c
+++ b/libguile/goops.c
@@ -521,9 +521,8 @@ SCM_DEFINE (scm_sys_modify_instance, "%modify-instance", 2, 0, 0,
SCM_ASSERT (old_nfields == new_nfields, new, SCM_ARG2, FUNC_NAME);
/* Exchange the data contained in old and new. We exchange rather than
- * scratch the old value with new to be correct with GC.
- * See "Class redefinition protocol above".
- */
+ scratch the old value with new to be correct with GC. See "Class
+ redefinition protocol" in goops.scm. */
scm_i_pthread_mutex_lock (&goops_lock);
/* Swap vtables. */
{