summaryrefslogtreecommitdiff
path: root/libguile/struct.c
diff options
context:
space:
mode:
Diffstat (limited to 'libguile/struct.c')
-rw-r--r--libguile/struct.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/libguile/struct.c b/libguile/struct.c
index adebe6f9f..5b748095e 100644
--- a/libguile/struct.c
+++ b/libguile/struct.c
@@ -992,9 +992,10 @@ scm_print_struct (SCM exp, SCM port, scm_print_state *pstate)
void
scm_init_struct ()
{
- GC_REGISTER_DISPLACEMENT (2*sizeof(scm_t_bits)); /* for the self data pointer */
- GC_REGISTER_DISPLACEMENT (2*sizeof(scm_t_bits)
- + scm_tc3_struct); /* for the vtable data pointer */
+ /* The first word of a struct is equal to `SCM_STRUCT_DATA (vtable) +
+ scm_tc3_struct', and `SCM_STRUCT_DATA (vtable)' is 2 words after VTABLE by
+ default. */
+ GC_REGISTER_DISPLACEMENT (2 * sizeof (scm_t_bits) + scm_tc3_struct);
scm_struct_table = scm_make_weak_key_hash_table (scm_from_int (31));
required_vtable_fields = scm_from_locale_string (SCM_VTABLE_BASE_LAYOUT);